Отъезд 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 теперь принимают строковые выражения вместо выражений кода. Поскольку они являются строками с поздними связями, я могу их динамически строить. Например: я могу предоставить пользовательский интерфейс бизнес-аналитику конечного пользователя, используя мое приложение, которое позволяет им самостоятельно создавать запросы (включая условные условные предложения).
Это работает? Я получаю следующее: Ошибка Ошибка перегрузки не удалось, так как доступный «OrderBy» не может быть вызван с этими аргументами: Тип данных (ов) типа (ов) не может быть выведен из этих аргументов. Указание типа (ов) данных явно может исправить эту ошибку. Я не вижу «String» в качестве параметра в предложении .OrderBy. – JohnnyBizzle 2011-05-31 08:11:43
@JohnnyBizzle - Он работает. Я использую его во многих проектах. Дважды проверьте, что dynamic.cs находится в вашем проекте и что вы правильно указали его в своих объявлениях использования. – Geoff 2011-05-31 10:43:15