LINQ to Entities не распознает метод 'System.DateTime GetValueOrDefault()'
Борьба с очень простым кодом, который не работает, когда аналогичный код работает в других классах. Он не будет компилироваться, если я удалю GetValueOrDefault(). Также я использую System.Linq.
Я получаю эту ошибку во время выполнения: LINQ to Entities не распознает метод "System.DateTime GetValueOrDefault()". Есть идеи?
public List<AddressModel> GetAll(string customer_number)
{
addresses = (from a in db.ADDRESS
where a.CUSTOMER_NUMBER.Equals(customer_number)
select new AddressModel
{
Address_Id = a.ADDRESS_ID,
System_Id = a.SYSTEM_ID,
Customer_Number = a.CUSTOMER_NUMBER,
Address_Type = a.ADDRESS_TYPE,
Changed_On = a.CHANGED_ON.GetValueOrDefault(DateTime.MinValue),
Created_On = a.CREATED_ON.GetValueOrDefault(DateTime.MinValue),
Email = a.EMAIL
}).ToList();
return addresses;
}
Ответы
Ответ 1
Вы можете использовать оператор Null Coalescing ??
:
addresses = (from a in db.ADDRESS
where a.CUSTOMER_NUMBER.Equals(customer_number)
select new AddressModel
{
Address_Id = a.ADDRESS_ID,
System_Id = a.SYSTEM_ID,
Customer_Number = a.CUSTOMER_NUMBER,
Address_Type = a.ADDRESS_TYPE,
Changed_On = a.CHANGED_ON ?? DateTime.MinValue,
Created_On = a.CREATED_ON ?? DateTime.MinValue,
Email = a.EMAIL
}).ToList();