Описание тега dynamic-linq
Dynamic LINQ is a small library on top of the.NET framework 3.5 or later which allows to build string based query expressions.
Dynamic LINQ is not part of the.NET framework but is provided as a sample to Visual Studio 2008. The single C# file consists of the namespace System.Linq.Dynamic
which includes a set of extension methods for IQueryable<T>
- for instance overloads of Where
, Select
, OrderBy
, GroupBy
which expect a string as parameter instead of a lambda expression to define a query.
The query string is parsed and transformed into an expression tree by using Reflection. The Dynamic LINQ extension methods throw a ParseException
if the syntax of the query string is invalid or the string contains unknown operators or properties.
Dynamic LINQ can be used with any LINQ data provider like LINQ to Objects, LINQ to Entities, LINQ to SQL or LINQ to XML.
Example in C#
The strongly-typed LINQ query...
var query = Northwind.Products
.Where(p => p.CategoryID == 2 && p.UnitPrice > 3)
.OrderBy(p => p.SupplierID);
... can be expressed in Dynamic LINQ in the following way:
var query = Northwind.Products
.Where("CategoryID = 2 And UnitPrice > 3")
.OrderBy("SupplierID");
Links