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レコードを返す可能性があります。残念ながら、データベースから2つのテーブルに移動して結合することはできないため、成果物はオブジェクトである必要があります。
誰かが私を正しい方向に向けてくれませんか
ありがとう、
私のコードは
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)
成果物に値(テスト用に追加)があり、値が一致している場合でもクエリは正しく実行されることに気付きましたが、成果物に一致がない場合は、エラーメッセージが表示されます。
問題はおそらくnull値の処理にあります。