Лучший способ подключения к базе данных MySQL в проекте Silverlight - PullRequest
0 голосов
/ 16 марта 2012

Я бился головой и рыскал по интернету, пытаясь получить данные из базы данных 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...