だから私はこのクエリを持っています:
var list = (from x in xList
join a in AList on x.commonfield equals a.commonfield
join b in BList on x.newCommonField equals b.newCommonField
from c in Clist.Where(p=>p.connectorID==x.connectorID).DefaultifEmpty()
select new { x, a.DesiredFieldFromA, b.DesiredFieldFromB,c.name}).ToList();
list.ForEach(el =>
{
el.x.DesiredFieldFromA= el.DesiredFieldFromA;
el.x.DesiredFieldFromB= el.DesiredFieldFromB ;
el.x.Name=el.name;
});
return list.Select(p=>p.x);
私がする時 :
select new { x, a.DesiredFieldFromA, b.DesiredFieldFromB,c.name}).ToList();
質問#1:レコードが表示されるはずだとどうやって伝えることができますか...ただし、名前フィールドがnullの場合はstring.emptyを入力してください。
何かに沿って:
select new { x, a.DesiredFieldFromA, b.DesiredFieldFromB,c.name??string.Empty}).ToList();
質問#2:「connectorID」がnullであっても、xレコードを表示するためにそれが必要であることをどのように伝えることができますか。
よろしくお願いします。
#1と#2の解決策は次のとおりです。
from c in Clist.Where(p=>p.connectorID==x.connectorID).DefaultifEmpty()
select new { x, a.DesiredFieldFromA, b.DesiredFieldFromB,name= (c==null) ?"Not Defined": c.name}).ToList();