21
A
回答
19
时退房Dynamic Linq Library从ScottGu的博客:
例如,下面是一个标准的类型安全LINQ到SQL VB查询从Northwind数据库检索数据并显示在一个ASP.NET GridView控件:
Dim Northwind As New NorthwindDataContext
Dim query = From q In Northwind.Products Where p.CategoryID = 2 And p.UnitPrice > 3 Order By p.SupplierID Select p
Gridview1.DataSource = query
GridView1.DataBind()
使用LINQ DynamicQuery库,我可以重新写上面的查询表达式,而不是像这样
Dim Northwind As New NorthwindDataContext
Dim query = Northwind.Products .where("CategoryID=2 And UnitPrice>3") . OrderBy("SupplierId")
Gridview1.DataSource = query
GridView1.DataBind()
注意如何conditional-where子句和sort-orderby子句现在使用字符串表达式而不是代码表达式。因为它们是晚期绑定的字符串,我可以动态构建它们。例如:我可以使用我的应用程序为最终用户业务分析师提供UI,使他们能够自行构建查询(包括任意条件子句)。
2
这样的事情?
var myList = new List<string> { "a","b","c" };
var items = from item in db.Items
where myList.Contains(item.Name)
select item;
,将创建一个像
SELECT * FROM Items [t0] where Name IN ('a','b','c')
5
9
动态LINQ的SQL语句是一条路可走。
它可能是你的情况矫枉过正。考虑:
IQueryable<Customer> query = db.Customers;
if (searchingByName)
{
query = query.Where(c => c.Name.StartsWith(someletters));
}
if (searchingById)
{
query = query.Where(c => c.Id == Id);
}
if (searchingByDonuts)
{
query = query.Where(c => c.Donuts.Any(d => !d.IsEaten));
}
query = query.OrderBy(c => c.Name);
List<Customer> = query.Take(10).ToList();
相关问题
- 1. 在Tableau中创建动态过滤器
- 2. 是否可以在Linq to SQL中使用自动过滤器?
- 3. 使用动态LINQ来过滤集合
- 4. 动态的LINQ/LAMBDA过滤
- 5. 动态过滤linq lambda表达式
- 6. 当您可以使用动态LINQ时,规范模式是否已过时?
- 7. LINQ:构建动态的过滤器与运算
- 8. 动态构建Any()方法的LINQ过滤器?
- 9. 使用LINQ以动态方式过滤产品
- 10. 如何为基于ria服务的过滤器创建动态linq查询?
- 11. 使用LINQ和动态创建谓词
- 12. 使用模式的过滤器阵列
- 13. kafka过滤/动态主题创建
- 14. 动态创建lambdas表达式+ linq + OrderByDescending
- 15. 动态过滤器
- 16. 在GNU使用$(过滤器)的makefile静态模式规则
- 17. 使用django_filters创建或过滤器
- 18. 使用Gmail API创建过滤器
- 19. 使用javascript创建Instagram-esque过滤器?
- 20. 使用jquery动态创建模态
- 21. 使用angular2创建动态模态
- 22. 是否可以使用动态运算符创建动态算术表达式?
- 23. SQL创建带有过滤器的表
- 24. 是否可以创建控制器过滤器?
- 25. 如何创建工作表的动态视图(过滤器)?
- 26. 是否有可能在OrientDB中使用JSON模式创建类?
- 27. 是否有一个动作过滤器覆盖控制器过滤器?
- 28. Elastcisearch动态聚合|过滤器建设
- 29. 是否有将数据过滤器应用于数据的框架或模式?
- 30. 过滤使用LINQ
这是行不通的吗?我得到这个:Error 重载解析失败,因为没有可访问的'OrderBy'可以用这些参数调用: 无法从这些参数中推断出类型参数的数据类型。明确指定数据类型可能会更正此错误。 我在.OrderBy子句中看不到'String'作为参数选项。 – JohnnyBizzle 2011-05-31 08:11:43
@JohnnyBizzle - 它的工作原理。我在很多项目中使用它。仔细检查dynamic.cs是否在您的项目中,并且您在使用声明中正确引用了它。 – Geoff 2011-05-31 10:43:15