在非常简单的代码中苦苦挣扎,在类似的代码在其他类中工作的地方不起作用。如果我删除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;
}
答案 0 :(得分:52)
您应该可以使用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();