2009-08-14 72 views
0

我今天早上花在瞭解system.linq.expressions命名空間的位置。以下是我所做的:缺少Linq命名空間(Linq to sql,compact framework)

  1. 在VS 2008中,創建一個新的C#/智能設備/ Windows Mobile 6專業SDK/.NET CF V3.5 /類庫

  2. 使用SqlMetal(以Program Files/Microsoft SDKs/Windows/v6.0A/Bin)來生成數據上下文。

  3. 將數據上下文.cs文件添加到項目中。

  4. 編譯和許多錯誤失蹤的命名空間:將System.Data.Linq,System.Data.Linq.Mapping,System.Linq.Expressions

  5. 經過一番研究添加System.Data.Linq.dll在C :\ Program Files文件\參考大會\微軟\框架\ v3.5版本(該DLL時,我選擇添加引用並沒有直接列出,我用「瀏覽」選項卡上,最終位於一個,這是正常的框架)

  6. 再次編譯,錯誤較少​​,但仍缺少System.Linq.Expressions名稱空間。

文件稱System.Linq.Expressions是System.Core.dll但似乎我的System.Core.dll(位於Program Files \ Microsoft.NET \ SDK \ CompactFramework \ v3.5版本\ Windows CE的)比文檔說的包含更少的命名空間。

在此先感謝!

回答

4

Compact Framework不支持LINQ to SQL。 documentation for System.Data.Linq中的所有對象都完全沒有「CF支持」圖標來確認這一點。例如,查看支持的the docs for DataTable。每個支持的方法/屬性都會顯示一個小圖標。

通過簡單地引用一個桌面組件,就像你在第5步中所做的CF不能食用完整的框架組件,用於各種原因不能「增加」的支持。

0

動態代碼生成(Reflection.Emit)在NETCF中不可用。這意味着很多依賴於此的功能是不可用的,這包括DLR(dyanmic語言運行時和因此IronRuby等語言),Linq-to-SQL/

0

如果您只想要Linq.Expressions和你正在做你自己的東西,即不試圖讓LINQ到SQL工作,然後你可以使用從db4o傢伙System.Linq.Expression的東西。 我在我的項目中使用linq到對象。 db4o linq implementation