xml からエンティティを作成するために、Linq to Xml クエリを作成しました。XML に空白の可能性がある 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 です