我試圖對2個對象執行左外部連接並出現錯誤:未將對象引用設置爲對象的實例。左外部連接,對象引用未設置爲對象的實例
的物體看起來像
var deliverables = OCHART.GetACAPValues(organization, ReportingPeriod, FiscalYear, "(09-10.10a) Outreach Significant").ToList();
var references = (from rf in OCHART.References where rf.RefType.Equals("09-10.10a") && rf.Comments.Equals("2") select rf).ToList();
在哪些可交付往往可能返回0的記錄。不幸的是,我不能僅僅從數據庫中加入兩張表,因此可交付成果必須是一個對象。
可有人請點我在正確的方向
感謝,
我的代碼是
var items = (from rf in references
join pt in deliverables on rf.Description equals pt.b into prt
from x in prt.Where(prt2 => prt2.a.Equals(audience)).DefaultIfEmpty()
where rf.RefType.Equals("09-10.10a") && rf.Comments.Equals("2")
select new
{
audience = (string)(audience == null ? "" : audience),
RefType = (string)(rf.RefType == null ? "" : rf.RefType),
RefOrder = (int)(rf.RefOrder == null ? 0 : rf.RefOrder),
refName = (string)(rf.Description == null ? "" : rf.Description),
collumn_attr = (string)(x.b == null ? string.Empty : x.b),
value = (int)(x.ACAP == null ? (int?)null : x.ACAP)
})
.OrderBy(o => o.RefOrder)
.Take(9)
.ToList();
編輯: 經過一些調試運行,似乎我在下面得到錯誤我的代碼中的行
collumn_attr = (string)(x.b == null ? string.Empty : x.b),
value = (int)(x.ACAP == null ? (int?)null : x.ACAP)
即使我在交付件中有值(添加用於測試)並且值匹配時,我也會注意到查詢會正確執行,但是當我收到錯誤消息時交付件中沒有匹配時。
該問題可能與處理空值有關。
+1:是的,我認爲你在那裏是正確的。 – code4life
我嘗試了你的建議,你發現,我做了value =(int)(x == null?0:x.ACAP),現在一切正常。真的很感謝幫助。謝謝。 – Dmitris