Linq to XML的值不能为null

时间:2014-06-13 18:59:04

标签: vb.net linq-to-xml

我有一个Customer类并使用XML响应来填充类中的一些数据,如下所示(ns是命名空间)

Dim GetCustomers = From c As XElement In XDoc.Descendants(ns + "customer")
              Select New Customer With {.Name = c.Element(ns + "name"),
                                        .Gender = CStr(c.Element(ns + "gender")),
                                        .EndDate = CStr(c.Element(ns + "SubscriptionEndData"))}

有错误的行是EndDate,它是数据库中的Datetime类型....错误是" Message =" Value不能为null。参数名称:element""。为了测试我的理论,我将类型从dateTime更改为Nvarchar,代码可以正常工作。

如何将EndDate类型保留为datetime来解决此问题?我真的不想把它改成数据库中的NVARCHAR,因为后来我想用日期做一些计算。我尝试使用Key关键字的匿名类型,但是没有用,因此在搜索并玩游戏后我无法在上面添加if语句,所以我想必须有另一种我可能不知道的方式?对不起,Linq对XML和匿名类型很新,所以感谢任何指导。

由于

编辑:添加部分课程后

阅读此帖子How can I override the properties in partial class?我创建了以下类/接口

Public Interface ICustomer
    Property EndDate As Nullable(Of DateTime)
End Interface

Partial Public Class Customer
    Implements ICustomer


    Public Property EndDate1 As Date? Implements ICustomer.EndDate
End Class

0 个答案:

没有答案