У меня есть следующие модели:Entity Framework: поиск записей в базе данных с нулевыми столбцами
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
- null.
Я попытался следующий код:
FactCache fact = db.FactCache.FirstOrDefault(
a => a.InputResourceID == null
&& a.PhaseID == null
&& a.MonthDate == monthDate
&& a.AttributeKey == key);
Однако, она возвращает пустой объект. Каков правильный способ написания вышеуказанного запроса?
Я проверил базу данных и действительно есть записи с нулевыми PhaseID
и InputResourceID
.
Посмотрите [этот вопрос SO] (http://stackoverflow.com/questions/682429/how-can-i-query-for-null-values-in-entity-framework), какую версию EF вы используете? – Andomar
Простите очевидный вопрос: он все равно возвращает null, если вы удалите чеки «MonthDate» и «AttributeKey»? –
@SteveWilkes: Да, проблема сохраняется – Chopo87