我已经写了一个Linq到Xml查询,从xml创建实体,我在xml中有一个DateTime字段,它可能是空白的,我需要将相同的空白分配给字段在实体中,我收到错误“String not recognized as DateTime”将空值赋给DateTime字段
XDocument xDocument = XDocument.Load(@“c:\ Sample.xml”);
var _pndList =
from plist in
xDocument.Descendants("HEADER")
select new PND()
{
DeliveryDate =
DateTime.ParseExact(Convert(plist, "DELIVERYDATE"), "yyyyMMdd",
CultureInfo.InvariantCulture, DateTimeStyles.None),
LoadClosed =
DateTime.ParseExact(Convert(plist, "LOADCLOSEDDATETIME"), "yyyyMMddhhmmss",
CultureInfo.InvariantCulture, DateTimeStyles.None),
TrailerId = Convert(plist, "TRAILERID"),
TripAndRouteId = Convert(plist, "TRIPROUTEID"),
StoreCode = plist.Ancestors("STORE").Attributes().First().Value,
Product =
(from mlist in
plist.Ancestors("STORE").Descendants("RECORD")
select new PreNotifiedProduct()
{
DepotCode = Convert(plist, "DEPOTCODE"),
MU = Convert(mlist, "MU"),
CaseOrUnitQuantity =
System.Convert.ToInt32("0" + Convert(mlist, "NOOFCASES")),
OuterCaseHeight =
System.Convert.ToInt32("0" +
Convert(mlist, "OUTERCASEHEIGHT")),
OuterCaseLength =
System.Convert.ToInt32("0" +
Convert(mlist, "OUTERCASELENGTH")),
OuterCaseWidth =
System.Convert.ToInt32("0" + Convert(mlist, "OUTERCASEWIDTH")),
ProductCode = Convert(mlist, "TPNB"),
UnitsPerCase =
System.Convert.ToInt32("0" + Convert(mlist, "UNITSPERCASE")),
UseByDate =
DateTime.ParseExact(Convert(plist, "LOADCLOSEDDATETIME"),
"yyyyMMddhhmmss",
CultureInfo.InvariantCulture,
DateTimeStyles.None)
}).ToList()
};
}
在实体PreNotifiedProduct()UseByDate是日期时间
的
我想你将不得不检查元素是否为空,如果为空,则可能将其设置为'DateTime.MinValue'(表兄弟姐妹'DateTime'没有什么空白,最接近的是使其成为可空类型并依赖null作为空值) – V4Vendetta 2013-05-02 12:18:24