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

jfk*_*jfk 27 .net c# 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;
    }
Run Code Online (Sandbox Code Playgroud)

jmo*_*dyk 54

您应该能够使用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(); 
Run Code Online (Sandbox Code Playgroud)