2009-06-16 62 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