代码之家  ›  专栏  ›  技术社区  ›  Codism

缺少Linq命名空间(Linq to SQL,Compact Framework)

  •  0
  • Codism  · 技术社区  · 17 年前

    我花了一上午的时间试图找出System.Linq.Expressions名称空间在哪里。以下是我所做的:

    1. 在vs 2008中,创建一个新的c/智能设备/windows mobile 6 professional sdk/.net cf v3.5/class library

    2. 使用sqlmetal(在程序文件/microsoft sdks/windows/v6.0a/bin中)生成数据上下文。

    3. 将数据上下文.cs文件添加到项目中。

    4. 为缺少的命名空间编译和许多错误:system.data.linq、system.data.linq.mapping、system.linq.expressions

    5. 经过一些研究,在C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5中添加了system.data.linq.dll(当我选择添加引用时,没有直接列出该dll,我使用“浏览”选项卡最终找到了一个用于普通框架的dll)

    6. 再次编译,错误更少,但仍然缺少System.Linq.Expressions命名空间。

    该文档说System.Linq.Expressions在System.Core.dll中,但看起来我的System.Core.dll(位于Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE中)包含的命名空间比文档所说的少很多。

    事先谢谢!

    3 回复  |  直到 15 年前
        1
  •  4
  •   ctacke    17 年前

    Compact框架不支持Linq to SQL。中的所有对象 documentation for System.Data.Linq 通过完全不使用“在CF中受支持”图标来确认这一点。例如,看看 the docs for DataTable ,这是支持的。每个受支持的方法/属性都会显示一个小图标。

    您不能像在步骤5中那样简单地引用桌面程序集来“添加”支持。由于各种原因,CF不能使用完整的框架程序集。

        2
  •  0
  •   user160818    17 年前

    动态代码生成(reflection.emit)在netcf中不可用。这意味着许多依赖于它的功能都不可用,包括DLR(Dyanmic语言运行时,因此也包括IronRuby等语言)、Linq to SQL/

        3
  •  0
  •   GloryDev    15 年前

    如果您只需要linq.expressions,并且正在使用它做自己的事情,即不想让linq to sql工作,那么您可以使用db4o成员的system.linq.expression。 我正在使用LinqTo对象在我的项目中使用它。 db4o linq implementation

    推荐文章