2014-10-31 20 views
18

Başka sınıflarda benzer kodların çalıştığı yerde çalışmayan çok basit bir kodla mücadele. GetValueOrDefault() öğesini kaldırırsam derlenmez. Ayrıca System.Linq kullanıyorum. Bu çalışma zamanı hatası alıyorum: Varlıklar LINQ, 'System.DateTime GetValueOrDefault()' yöntemini tanımıyor. Herhangi bir fikir?Varlıklar için LINQ, '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; 
    } 
+9

Bu gerçekten bir kopya değil ... Bu soru bağlantılı soru sadece anlatılır o soruna geçici konusunda ise . Overzealous moderation, SO hakkında soru sormak istemiyor. – thepaulpage

+1

Aşağıdaki cevap bana yardımcı oldu. Sözde yinelenen bir soruya verilen cevaplar bana hiç yardımcı olmadı. ToString(), GetValueOrDefault() ile aynı değildir. Kavramlar benzer olabilir, ancak çözümler birbirinin yerine kullanılamaz. Bu nedenle, bu gerçekten bir çoğaltma değildir. –

cevap

35

Sen Null Coalescing operatörünü ?? kullanmak mümkün olmalıdır:

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(); 
+0

+1; zeki. İşletmelere LINQ, operatörlere izin verir. – BradleyDotNET

+0

Şaşırtıcı, bu bana çok zaman kazandı! – user2780436

İlgili konular