У меня есть запрос 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 не распознает метод« Boolean Contains (Int32) »»
Я могу понять, как получить эту ошибку, если бы я использовал содержимое в части where запроса, но почему я должен получить ее в select? К этому моменту я бы предположил, что запрос будет выполнен и вернет результаты. Этот маленький кусочек кода никак не ограничивает мои данные.
Какие-либо советы о том, как еще я могу выполнить то, что мне нужно, с установкой флага isAllied?
Спасибо