Как пометить любой неподдерживаемый оператор LINQ для LINQ-to-Entity во время сборки - PullRequest
1 голос
/ 26 марта 2011

Сегодня один из членов команды зарегистрировал некоторый код, который выглядел следующим образом

var query = repository.GetQueryable<Customer>()
.OrderBy(c => c.Name)
.Select( (c, i) => new{Order = i, Customer = c});

Очевидно, этот запрос не будет работать против Entity Framework, поскольку эта конкретная перегрузка метода Select равна не поддерживается .Проблема в том, что вы не будете знать о возможном использовании неподдерживаемых методов до времени выполнения.

Есть ли способ получить какую-то обратную связь во время сборки?Я думаю о написании собственного правила FxCop, но подумал, задайте этот вопрос на Stackoverflow на случай, если у кого-то есть идея получше.

1 Ответ

0 голосов
/ 26 марта 2011

Есть ли у вас интеграционные тесты, которые запускают ваши запросы LINQ для реальных баз данных?

Вот где я бы начал прилагать усилия - так вы будете тестировать весь запрос; не только какие перегрузки операторов запросов поддерживаются, но и то, поддерживается ли содержимое различных предложений.

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