动态 GroupBy 是否与动态 LINQ 中的动态Where一起工作?

发布于 2024-09-13 02:46:55 字数 930 浏览 7 评论 0原文

我使用这个 动态 LINQ 库 与 Linq-to-Entities 一起使用。
我构建查询,然后使用 foreach(object e in query){}

query=db.Table1.Where("it.FieldA>10").Select("it. FieldB"); 有效。
query=db.Table1.Where(e=>e.FieldA>10).GroupBy("it.FieldB", "it").Select("key") 有效。
但是 query=db.Table1.Where("it.FieldA>10").GroupBy("it.FieldB", "it").Select("key") 导致 EntitySqlException< /code> 带有消息 查询语法无效。,靠近关键字“FROM”,第 2 行,第 1 列。foreach 语句一致。

我怎样才能让它毫无例外地工作?

请注意,db.Table1.Where(e=>e.FieldA>10) 的类型是 IQueryable,但是 db.Table1 的类型。其中(“it.FieldA>10”)System.Data.Objects.ObjectQuery

I use this dynamic LINQ library together with Linq-to-Entities.
I build query and after that iterate it with foreach(object e in query){}

query=db.Table1.Where("it.FieldA>10").Select("it.FieldB"); works.
query=db.Table1.Where(e=>e.FieldA>10).GroupBy("it.FieldB", "it").Select("key") works.
But query=db.Table1.Where("it.FieldA>10").GroupBy("it.FieldB", "it").Select("key") causes EntitySqlException with message The query syntax is not valid., near keyword 'FROM', line 2, column 1. in line with foreach statement.

How can I make it work without exception ?

Note that type of db.Table1.Where(e=>e.FieldA>10) is IQueryable<Table1>, but type of db.Table1.Where("it.FieldA>10") is System.Data.Objects.ObjectQuery<Table1>.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

紫竹語嫣☆ 2024-09-20 02:46:56

找到了,db.Table1.AsQueryable()修复了它,所以db.Table1.AsQueryable().Where("it.FieldA>10").GroupBy("it.FieldB" , "it").Select("key") 毫无例外地工作。

问题在于 Microsoft Dynamic Linq 库扩展了 IQueryable,因此它对 ObjectQuerydb.Table1 的类型)不起作用

Found it, db.Table1.AsQueryable() fixed it, so db.Table1.AsQueryable().Where("it.FieldA>10").GroupBy("it.FieldB", "it").Select("key") works without exception.

The problem was that Microsoft Dynamic Linq library extends IQueryable<Table1>, so it does not take effect onObjectQuery<Table1> which is the type of db.Table1.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文