Как построить динамические запросы linq во время выполнения, используя строки? - PullRequest
4 голосов
/ 21 июня 2011

В этой статье говорится о построении динамических запросов с использованием строк, возможно ли это?

Я пытался

var ase = a.Select("NEW(activity_date as date)");

, и это не работает

Аргументы типа для метода 'System.Linq.Enumerable.Select (System.Collections.Generic.IEnumerable, System.Func)' не могут быть выведены из использования.Попробуйте явно указать аргументы типа.

C:\.....\filename.xaml.cs

как мне строить динамические запросы linq во время выполнения, используя строки?

Ответы [ 2 ]

3 голосов
/ 21 июня 2011

В каталоге примеров linq есть классная библиотека Dynamic Linq, которую вы можете использовать, Скотт Гу имеет довольно хороший пост в блоге о том, как ее использовать здесь.

2 голосов
/ 21 июня 2011

Да, вы можете иметь динамические запросы linq во время выполнения, используя строки. Вам необходимо использовать класс 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 во время выполнения и выдает исключение, если не удается найти некоторые свойства, используемые в запросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...