.NET Compact Framework中的LINQ to SQL替换

时间:2009-06-16 19:33:15

标签: c# .net linq-to-sql compact-framework mobile

我的任务是将.NET桌面应用程序移植到移动设备上。我们的桌面应用程序使用LINQ to SQL与数据库进行交互。但是,LINQ to SQL在移动设备上不可用。我们为Windows Mobile 5和6开发。

我在建议一个支持桌面和移动开箱即用的不同ORM之间进行辩论(http://www.entityspaces.net/portal/对我来说似乎是最好的)。但是,由于我们的数据库相对较小(其中一个在10个表中相对简单;另一个是27个表,但关联更复杂),我更倾向于自己重新编码域对象和数据访问函数。

还有其他人遇到过这种情况吗?你做了什么选择?

5 个答案:

答案 0 :(得分:2)

我个人推荐LLBLGen。他们对v1.0& 2.0。映射表非常快,生成的实体可以在移动和桌面中使用。它也不贵,并且有很长的记录。根据您的要求,这将是最快捷的方式。在POCO(普通的旧CLR对象)中执行它并使用Linq到Objects是可行的,但需要更长的时间。

答案 1 :(得分:2)

以下是另外两个选项:

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

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

就个人而言,我从来没有在Compact Framework上使用LINQ to Sql,我唯一接近的就是在桌面上使用Linq to Sql对抗SqlCe。

现在,根据您的数据层的错误情况,可能值得一看,您是否可以使用任何这些ORM并查看您的现有代码有多少可重复使用,或者重写它可能非常值得(再次,取决于项目的规模)

答案 2 :(得分:1)

我的团队正在使用T4根据数据库的结构和我们用于将POCO类和属性映射到SQL Compact表和列的约定来生成基本的CRUD操作。这有点工作,但工作正常。

答案 3 :(得分:1)

你不能直接用sqlServerCE将linq用于sql。与CF你只有linq到Xml,Linq到DataSet和Linq到对象的味道可用。 我正在开发移动应用程序,因为我正在使用SqlCeResultSet对象来使用数据,并且因为这个对象实现了IEnumerable,所以你可以使用Linq。

也许这可以帮到你

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

答案 4 :(得分:0)

您可能想查看这个开源框架:
Kea - Linq for Sql Compact&紧凑框架

http://kea.codeplex.com/