我一直在努力将MySQL数据库中的数据转换为我正在创建的VB.NET Silverlight应用程序。我已经使用ADO.NET实体数据模型和域服务类获取了应用程序中的数据,但是当时很难使用这些数据。如果我需要进行自定义查询,我要么使用LINQ并获取匿名类型,要么使用带有ObjectContext.CreateQuery函数的实体SQL,然后获取MaterializedDataRecords。然后我很难将其纳入我需要的IQueryable(Of MyDataClass)类型。当我只是采取整个ObjectContext.MyDataClass查询时,我收到一个错误“无法将MySQL日期/时间值转换为System.DateTime”,即使我将AllowZeroDatetime标志设置为true并且我的数据库中没有清零字段。这一切看起来都比简单的SQL语句困难得多!
正如你所知,我对这个过程感到沮丧。我已经浏览了互联网,并且在MySQL和Silverlight上找不到什么。有一个更好的方法吗?如果没有,是否有一个非常好的资源来帮助学习如何处理我遇到的许多问题和障碍?或者,您能举例说明从ObjectContext.CreateQuery或LINQ返回到IQueryable(Of MyDataClass)的数据吗?谢谢!对此,我真的非常感激!我不知道在哪里转向学会这样做。
根据要求,以下是我能够获得数据的两种方式:
LINQ
Public Function GetContacts() As IQueryable(Of contact)
Dim query = From c In Me.ObjectContext.contacts Select c.first_name, c.last_name
Return query
End Function
这会返回一个IQueryable(Of(匿名类型>)。不确定将其转换为IQueryable(联系方式)的最佳方式
实体SQL
Public Function GetContacts() As IQueryable(Of contact)
Return Me.ObjectContext.CreateQuery(Of contact)("select c.first_name, c.last_name from contacts as c").Execute(Objects.MergeOption.AppendOnly).AsQueryable
End Function
这会返回一个System.Data.Objects.MaterializedDataRecord,我也不确定转换为IQueryable(联系方式)的最佳方法
还有:
Public Function GetContacts() As IQueryable(Of contact)
Return Me.ObjectContext.contacts
End Function
...给我错误“无法将MySQL日期/时间值转换为System.DateTime”,即使我已经尝试将Convert Zero Datetime和Allow Zero Datetime都设置为true并且我没有将值清零数据库中。
这甚至是连接MySQL的最好方法吗?