我有以下的LINQ代碼:在LINQ查詢處理空字節數組值
docTypes = (from c in context.Citizenships join
cdt in context.Citizenship_Document_Types
on c.Country_Code equals cdt.Country_Code
from cd in context.Citizenship_Documents
.Where(cd => cd.Citizenship_Id == c.Citizenship_ID)
.DefaultIfEmpty()
where c.Citizenship_ID == citizenshipId
select new CitizenshipDocument
{
Id = (int?)cd.Citizenship_Document_Id??-1,
CitizenshipId = c.Citizenship_ID,
DocumentTypeId = cdt.Citizenship_Document_Type_Id,
DocumentTypeName = cdt.Citizenship_Document_Type_Name,
DocumentCode = cd.Citizenship_Document_Code.ToArray(),
ExpirationDate = cd.Expiration_Date,
IssueDate = cd.Issue_Date
}).ToList();
的問題是,當cd.Citizenship_Document_Code
返回null使用.ToArray()
時,我得到一個錯誤。 :
對象引用未設置到對象
我如何處理空值的實例?
我建議分割它,所以它不是一個具有不同責任的大代碼。也許在CitizenshipDocument上創建一個新的構造函數或靜態構造函數方法,只需要c和cd。或者,如果這不是一個選項,一個採用c和cd的本地Func,並返回CitizenshipDocument。 – 2010-08-31 03:20:22