這是我目前LINQ聲明:LINQ:如果導航屬性爲null設置默認值
var results = from l in leads
select new MyObject
{
LeadID = l.LeadID,
SelectedProposalEngineerID = l.LeadContacts.Where(contact => contact.LeadContactTypeID == LeadContactType.ProposalEngineer).FirstOrDefault().ContactID
};
我遇到的麻煩是,最後一個項目往往是空。所以,當我嘗試「結果」轉換到一個列表,我得到
{「演員到值類型‘System.Int32’失敗,因爲物化值爲null。無論是結果類型的泛型參數或查詢「}
我不想讓SelectedProposalEngineerID是一個空的int,對於會導致下游的問題。當它爲空時,我如何給它賦值0?
我已經看到很多關於這個的其他線程,但我似乎無法適應他們對這種情況的任何答案。
兩個說明 - (1)你確定這個例外與SelectedProposalEngineerID有關嗎? (2)「最後一項」(通常爲空)是什麼意思?所選聯繫人上的潛在客戶,聯繫人或FirstOrDefault()? –
好問題。在我查看這個 – user1418704
好了之後,讓我再回到你的問題,所以LeadContact表中的行並不總是LeadContact.LeadId等於Lead.LeadId – user1418704