У меня есть запрос LINQ к объекту Entity Framework. Вот краткое изложение запроса:
//a list of my allies
List<int> allianceMembers = new List<int>() { 1,5,10 };
//query for fleets in my area, including any allies (and mark them as such)
var fleets = from af in FleetSource
select new Fleet
{
fleetID = af.fleetID,
fleetName = af.fleetName,
isAllied = (allianceMembers.Contains(af.userID) ? true : false)
};
По сути, я собираю набор флотов. Список AllianceMembers содержит INT всех пользователей, которые являются моими союзниками. Я хочу установить isAllied = true, если владелец флота является частью этого списка, и false в противном случае.
Когда я это делаю, я вижу исключение: «LINQ to Entities не распознает метод «Булев метод содержит (Int32)»»
Я могу понять получение этой ошибки, если бы я использовал содержимое в части запроса, но почему я получил бы ее в выборе? К этому моменту я бы предположил, что запрос будет выполнен и вернет результаты. Этот небольшой код вообще никак не ограничивает мои данные.
Любые советы о том, как еще я могу выполнить то, что мне нужно, установив флаг isAllied?
Спасибо
Contains
будет поддерживаться в следующей версии Entity Framework. - person BlueRaja - Danny Pflughoeft   schedule 25.03.2010