LLBLGEN:Linq到LLBGEN不起作用

时间:2010-03-08 18:48:25

标签: sql linq llblgen

我想使用Linq从数据库表中进行自定义选择。我们使用LLBGEN作为ORM解决方案。

我不能对Entities Collection Class进行LINQ查询,除非我调用它的GetMulti(null)方法。

是否可以在不提取所有表的情况下对LLBGEN进行LINQ查询?

BatchCollection batches = new BatchCollection();                
BatchEntity batch = batches.AsQueryable()
.Where(i => i.RegisterID == 3)
.FirstOrDefault(); // Exception: Sequence don't contains any elements

batches = new BatchCollection();                
batches.GetMulti(null); // I don't want to extract the whole table.
BatchEntity batch = batches.AsQueryable()
.Where(i => i.RegisterID == 3)
.FirstOrDefault(); //Works fine

1 个答案:

答案 0 :(得分:4)

要使用LINQ查询数据库(与使用LINQ语法对可枚举集合进行操作不同),您必须在yourrootnamespace.Linq程序集中使用LLBLGen附带的LinqMetaData提供程序。将此程序集添加到项目后,可以使用类似的方法创建数据库查询:(来自LLBL文档)

LinqMetaData metaData = new LinqMetaData();
var q = from c in metaData.Customer
        where c.Country=="USA"
        select c;

在上面的示例中,您使用LINQ语法对集合执行where子句,但这与LLBL或在数据库上执行查询无关。这就是为什么它不适用于空集合,但对填充集合起作用。

了解使用LINQ to LLBLGen查询数据库的具体细节LinqMetaData