2009-08-14 84 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