Замена LINQ to SQL в .NET Compact Framework - PullRequest
1 голос
/ 16 июня 2009

Мне было поручено перенести наше приложение .NET Desktop на мобильное устройство. Наше настольное приложение использует LINQ to SQL для взаимодействия с базой данных. Однако LINQ to SQL недоступно на мобильных устройствах. Разрабатываем для Windows Mobile 5 и 6.

Я спорю между тем, чтобы предложить другой ORM, который поддерживает как настольный компьютер, так и мобильный телефон из коробки (http://www.entityspaces.net/portal/ кажется мне лучшим). Однако, поскольку наши базы данных относительно малы (одна из них относительно проста на 10 таблиц; другая - 27 таблиц, но ассоциации более сложны), я больше склоняюсь к простому перекодированию объектов домена и функций доступа к данным.

Кто-нибудь еще был в этой ситуации? Какой выбор вы сделали?

Ответы [ 5 ]

2 голосов
/ 16 июня 2009

Вот еще два варианта для вас:

http://www.llblgen.com/defaultgeneric.aspx

http://www.devexpress.com/Products/NET/ORM/info.xml

Лично я никогда не использовал LINQ to Sql на Compact Framework, единственное, что я сделал, это было близко - это использование Linq to Sql против SqlCe на рабочем столе.

Теперь, в зависимости от того, какова ошибка в вашем слое данных, возможно, стоит посмотреть, можете ли вы использовать какой-либо из этих ORM и посмотреть, сколько из вашего существующего кода можно использовать повторно, или, возможно, стоит просто переписать его в зависимости от размера проекта)

2 голосов
/ 16 июня 2009

Я могу лично порекомендовать LLBLGen. Они имеют поддержку CF Framework для v1.0 и 2.0. Очень быстро отобразить таблицы, и полученные объекты можно использовать как на мобильных устройствах, так и на компьютере. Это также не дорого, и имеет большой послужной список. Исходя из ваших требований, это будет самый быстрый путь. Выполнение этого в POCO (Plain Old CLR Objects) и использование Linq to Objects было бы выполнимо, но заняло бы намного больше времени.

1 голос
/ 18 июня 2009

Вы не можете использовать linq для sql напрямую с SqlServerCE. с CF у вас есть только варианты linq для Xml, Linq для DataSet и Linq для объектов. Я работаю над мобильным приложением, и потому что я использую данные с объектом SqlCeResultSet, и поскольку этот объект реализует IEnumerable, вы можете использовать Linq с ним.

может быть, это поможет вам

http://www.pluralsight.com/community/blogs/jimw/archive/2008/02/27/50325.aspx

1 голос
/ 18 июня 2009

Моя команда использует T4 для генерации базовых операций CRUD на основе структуры базы данных и соглашений, которые мы используем для сопоставления наших классов и свойств POCO с таблицами и столбцами SQL Compact. Это немного работы, но работает хорошо.

0 голосов
/ 28 мая 2013

Возможно, вы захотите проверить эту среду с открытым исходным кодом:
Kea - Linq для Sql Compact & Compact Framework ?

http://kea.codeplex.com/

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