使用此答案中提到的一些逻辑,我正在使用此代码在几个表上执行外连接。我知道三个连接之一将产生一个 MyField 值。但是,在我的 select 语句中,我调用了一个构造函数,并且我只想使用不为 null 的 MyField 值。
public static MyResult GetMyResult(string MyString)
{
var result = (from w in context.TABLE_ONEs
from a in context.TABLE_TWOs.Where(x => x.field1 == w.field1).DefaultIfEmpty()
from l in context.TABLE_THREEs.Where(y => y.field1 == w.field1).DefaultIfEmpty()
from n in context.TABLE_FOURs.Where(z => z.field1 == w.field1).DefaultIfEmpty()
select new MyResult(w.someField,
w.someOtherField,
(a.date ?? l.date ?? n.date))
).First();
return result;
}
但是,我收到编译错误消息,“运算符 '??' 不能应用于“System.DateTime”和“System.DateTime”类型的操作数”。这适用于可为空的数据类型,例如字符串,但不适用于此“日期”字段。
除了将数据库列更改为可为空的 DateTime 之外,您是否知道解决此问题的方法?