Я бился головой и рыскал по интернету, пытаясь получить данные из базы данных MySQL в создаваемом мною приложении VB.NET Silverlight. Я получил данные в приложении, используя модель данных объекта ADO.NET и класс обслуживания домена, но изо всех сил пытался использовать эти данные. Если мне нужно выполнить пользовательский запрос, я либо использую LINQ и получаю анонимный тип, либо использую объектный SQL с функцией ObjectContext.CreateQuery, а затем получаю MaterializedDataRecords. Я тогда изо всех сил пытаюсь получить это в IQueryable (Of MyDataClass) тип, который мне нужен. Когда я просто беру весь запрос ObjectContext.MyDataClass, я получаю сообщение об ошибке «невозможно преобразовать значение даты / времени MySQL в System.DateTime», даже если я установил для флага AllowZeroDatetime значение true и в моей базе данных нет обнуляемых полей. Все это кажется гораздо сложнее, чем простой оператор SQL!
Как вы можете сказать, я разочарован процессом. Я искал в Интернете и могу найти очень мало на MySQL и Silverlight. Есть лучший способ сделать это? Если нет, есть ли действительно хороший источник, который поможет научиться справляться со многими проблемами и стенами, которые я бью? Или вы можете привести примеры получения данных, возвращаемых из ObjectContext.CreateQuery или LINQ в IQueryable (Of MyDataClass)? Спасибо! Я очень ценю это! Я не уверен, куда обратиться, чтобы научиться делать это.
В соответствии с просьбой, вот два способа, которыми я смог получить данные:
1007 * 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 (Of contact)
Сущность 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», хотя я пытался установить для параметров «Преобразовать нулевое время даты» и «Разрешить нулевое время» значение «истина», и у меня нет обнуленных значений в моем базы данных.
Это даже лучший способ подключиться к MySQL?