This article谈到使用字符串构建动态查询是否可能?
我试过
var ase = a.Select("NEW(activity_date as date)");
它不起作用
方法的类型参数 “System.Linq.Enumerable.Select(System.Collections.Generic.IEnumerable, System.Func)'不能 从用法推断。尝试 指定类型参数 明确。
C:\.....\filename.xaml.cs
如何在运行时使用字符串构建动态linq查询?
答案 0 :(得分:3)
在linq samples目录中有一个很酷的Dynamic Linq库你可以使用,Scott Gu有一篇关于如何使用它的相当不错的博客文章here.
答案 1 :(得分:2)
是的,您可以在运行时使用字符串进行动态linq查询。你需要使用提到的here的ObjectQuery类,下面是执行此操作的代码片段:
string queryString =
@"SELECT VALUE product FROM AdventureWorksEntities.Products AS product";
// Call the constructor with the specified query and the ObjectContext.
ObjectQuery<Product> productQuery2 =
new ObjectQuery<Product>(queryString, context);
foreach (Product result in productQuery2)
Console.WriteLine("Product Name: {0}", result.Name);
ObjectQuery将在运行时针对LINQ模型验证查询,如果找不到您在查询中使用的某些属性,则抛出异常。