LinqToSQL 中不存在 DataSource.Table.Where(stringOfConstraint) 来支持 OData?
我正在查看这个 Telerik 演示,并且我无法让“count”语句发挥作用。我相信以下命令仅在 EntityFramework 上受支持,而不是 Linq2SQL。
return CurrentDataSource.Products.Where(where).Count();
小写的参数“where”实际上是在 ADO.Net DataServices (OData) url 中传递的字符串。此 URL应该发送到 Linq 提供程序以进一步限制查询。
如果 Linq2SQL 不支持这一点,我该如何做出类似的语句?
I'm looking at this Telerik demo, and am unable to get the "count" statement to work. I believe that the following command is only supported on EntityFramework, and not Linq2SQL.
return CurrentDataSource.Products.Where(where).Count();
The parameter "where" in lowercase is actually a string that is passed in the ADO.Net DataServices (OData) url. This URL should be sent to the Linq provider to further constrain the query.
If that is not supported in Linq2SQL, how can I make a similar statement?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要对 Queryable.Where 方法使用的谓词使用 lambda 表达式:
如果您确实想使用字符串,请查看 Dynamic LINQ,从 Scott Gu 的博客文章开始:动态 LINQ(第 1 部分:使用 LINQ 动态查询库)。然后您应该能够编写类似于以下内容的查询:
You need to use a lambda expression for the predicate used by the
Queryable.Where
method:If you really want to use a string then take a look at Dynamic LINQ, starting with Scott Gu's blog post: Dynamic LINQ (Part 1: Using the LINQ Dynamic Query Library). Then you should be able to write queries similar to:
您可以编写自己的通用扩展,如何编写最有效的扩展取决于具体情况...但它可能应该是这样的:
这可能不是最有效的方法,并且仅在您有 IQueryable 时才有效。如果性能不是问题就使用它。
You could write your own generic extension, how you should write the most effective one depends on the situation... but it should probably be something like:
This is probably not the most effective way and only works if you have an IQueryable. If performance is not a problem just use it.