Я пытаюсь использовать скомпилированный запрос для одного из моих запросов linq to sql. Этот запрос содержит от 5 до 6 объединений. Мне удалось создать скомпилированный запрос, но проблема, с которой я столкнулся, - это мой запрос, чтобы проверить, находится ли ключ в коллекции ключей, переданных в качестве входных данных. Но скомпилированные запросы не позволяют передавать коллекцию (поскольку коллекция может иметь различное количество элементов, поэтому не допускается).Help with linq to sql compiled query
Например
вход функции представляет собой набор ключей. Скажи: List<Guid> InputKeys
List<SomeClass> output = null;
var compiledQuery = CompiledQuery.Compile<DataContext, List<Guid>, IQueryable<SomeClass>>(
(context, inputKeys) => from a in context.GetTable<A>()
where inputKeys.Contains(a.Key)
select a);
using(var dataContext = new DataContext())
{
output = compiledQuery(dataContext, InputKeys).ToList();
}
return output;
Этот запрос не компилируется, так как он принимает список в качестве одного из входов. Есть ли какая-нибудь работа или лучший способ сделать это?
Можете ли вы просто использовать обычный запрос вместо скомпилированного? – Gabe
@Gabe: Я мог бы. Но, как я уже говорил, это сложный запрос, и я хочу посмотреть, могу ли я каждый раз исключать затраты на его сборку. Благодарю. – stackoverflowuser