以下代码中的第一个三元语句返回“null”。myID 返回为空。但是,如果三元语句工作正常,并且 a.someID 为空,则 myID 应返回为 -1。myID 是一个可为空的 int 字段。你知道为什么我没有得到-1吗?谢谢。
public List<myView> GetRecords()
{
myEntities entities = new myEntities();
var myValue = (from a in entities.myEntitiesA
join b in entities.myEntitiesB on a.myID equals b.myID into myEntitesC
from c in myEntitesC.DefaultIfEmpty()
select new myView
{
myID = a.someID == null ? -1 : a.someID,
myName = a.myName,
myAlternateID = c.myID == null ? -1 : c.myID,
myAlternateName = c.myName == null ? "" : c.myName,
}).Distinct().OrderBy(b => b.myName).ToList();
return (myValue);
}
编辑 - 为了测试,我已经摆脱了 DefaultIfEmpty() ,但我的结果是一样的。