2015-08-10 2 views
1

В репозитории, я имею строку с нулевым значением " o.Attribute("PreorderLanchDate")" преобразован в nullable datetime.null date date исключение времени

Вот код:

PreorderLanchDate = o.Attribute("PreorderLanchDate") == null ? (DateTime?)null : DateTime.Parse(o.Attribute("PreorderLanchDate").Value), 

На контроллере, launchdate обнуляемый, не получает значение, поскольку она показывает исключение нулевого значения. вот код:

LaunchDate = (DateTime)product.PreorderLanchDate 
+0

Попробуйте LaunchDate = product.PreorderLanchDate, как PreorderLanchDate обнуляемым –

+0

product.PreorderLaunchDate является обнуляемым 'DateTime' Таким образом, вы можете попробовать (DateTime?) – Nalaka

ответ

2

Попробуйте это.

//along with the null reference check, Use `String.IsNullOrEmpty` to check o.Attribute("PreorderLanchDate").Valuen 
PreorderLanchDate = o.Attribute("PreorderLanchDate") == null || String.IsNullOrEmpty(o.Attribute("PreorderLanchDate").Value) ? (DateTime?)null : DateTime.Parse(o.Attribute("PreorderLanchDate").Value), 



    //Cast to a nullable DateTime 
LaunchDate = (DateTime?)product.PreorderLanchDate 
+0

LaunchDate = (DateTime?) Product.PreorderLanchDate LaunchDate уже инициализирована nullable в классе модели, поэтому его исключение «невозможно преобразовать» System.DateTime? » to 'System.Datetime'. Явное преобразование существует (вам не хватает роли) " –

1

product.PreorderLaunchDate является обнуляемым DateTime, если это имеет значение null вы получите исключение произнесения его к нормальному DateTime.

0

Вы можете использовать оператор as для выполнения определенных типов преобразований между совместимыми ссылочными типами или типами NULL.

var nullableDateTime = product.PreorderLanchDate as DateTime; 

if (nullableDateTime != null) 
    LaunchDate = nullableDateTime;