我有以下型号:
public class FactCache
{
public int ID { get; set; }
public DateTime MonthDate { get; set; }
public string AttributeKey { get; set; }
public decimal RawValue { get; set; }
public decimal ManDayValue { get; set; }
public decimal FTEValue { get; set; }
public int? InputResourceID { get; set; }
public int? PhaseID { get; set; }
public virtual InputResources InputResource { get; set; }
public virtual DimPhase Phase { get; set; }
}
如您所见,InputResourceID
和PhaseID
是可以为空的可选字段。
我想编写一个查询来查找给定日期的第一个条目,AttributeKey
PhaseID
和InputResourceID
都为空。
我尝试过以下代码:
FactCache fact = db.FactCache.FirstOrDefault(
a => a.InputResourceID == null
&& a.PhaseID == null
&& a.MonthDate == monthDate
&& a.AttributeKey == key);
但是,它返回一个null对象。编写上述查询的正确方法是什么?
我检查了数据库,确实有空PhaseID
和InputResourceID
的条目。
答案 0 :(得分:1)
不确定,但也许......
FactCache fact = db.FactCache.FirstOrDefault(
a => false == a.InputResourceID.HasValue
&& false == a.PhaseID.HasValue
&& a.MonthDate == monthDate
&& a.AttributeKey == key);
答案 1 :(得分:1)
请注意,我很幸运能够运行EF 5或更高版本,试试这里提出的解决方案:Call is failing with null parameter