LINQ to Entities无法识别方法' System.DateTime GetValueOrDefault()'

时间:2014-10-31 22:33:09

标签: c# .net linq

在非常简单的代码中苦苦挣扎,在类似的代码在其他类中工作的地方不起作用。如果我删除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 个答案:

答案 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();