2009-06-16 122 views
1

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

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

有没有其他人在这种情况下?你做了什么选择?

回答

1

我的团队正在使用T4根据数据库结构和我们用来将POCO类和属性映射到SQL Compact表和列的惯例来生成基本的CRUD操作。这是一个工作,但正在努力。

+0

谢谢。由于数据库不是太大,我决定将POCO类/属性用于LINQ to Objects。我会看看T4,因为这可能会让我们更容易。 – chocojosh 2009-06-18 14:44:35

2

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

2

这里有两个选项供您:

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

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

就个人而言,我从来没有使用LINQ到SQL上的Compact Framework的,我唯一所做的这关闭是在桌面上使用Linq to Sql来对付SqlCe。

现在取决于你的数据层的bug是多少,如果你可以使用这些ORM的任何一个,看看你现有的代码有多少是可重用的,或者重写它可能是值得的同样取决于项目的规模)

+0

+1给我们懒惰的人实际链接LLBLGEN – ctacke 2009-06-16 19:54:30

+0

他从未使用LINQ对Compact Framework的SQL,因为它不支持。 – trampster 2009-06-23 01:46:52

1

你不能直接使用sqlqlCE与linq to sql。与CF你只有linq到Xml,Linq到DataSet和Linq到对象风味可用。 我正在使用移动应用程序,因为我正在使用SqlCeResultSet对象来使用数据,并且因为此对象实现了IEnumerable,所以可以使用Linq。

也许这可以帮助你

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