Я проверил другие вопросы, и я считаю, что это должно работать:Ошибка на Linq To Entities метода содержит NotSupportedException
private static List<Duck> GetDucks(this DataServiceContext ctx, params int[] ids)
{
return ctx.CreateQuery<Duck>("Ducks").Where(x => ids.Contains(x.DuckID)).ToList();
}
Я получил NotSupportedException: Метод «содержит» не поддерживается.
Я изменил запрос на
Where(x => ids.Any(id => id == x.DuckID)
Я получил сообщение: Метод «Любые» не поддерживается, когда MaxProtocolVersion меньше, чем «3,0»
Затем я построил DataServiceContext а, по-разному:
public static DataServiceContext Context
{
get { return new DataServiceContext(baseUri, DataServiceProtocolVersion.V3); }
}
После этого я получил сообщение: NotSupportedException: Параметр источника для метода «Любой» должен быть либо навигационным, либо коллекционным имуществом
Я думаю, что мог бы сделать некоторые советы, прежде чем идти дальше.
EDIT
я использовал MaxProtocolVersion 3 и клиент и сервер на стороне.
В любом случае это конкретное сообщение об ошибке исчезло, так как я больше не пытаюсь вернуть подмножество данных. Я просто получаю полный список сущностей перед работой (хотя это потребует дальнейшего рассмотрения/оптимизации). Я ошибочно полагал, что если бы у меня был временный DataServiceContext, который был пустым, мне пришлось бы получить объекты, которые я хотел бы обновить, а затем сохранить их обратно (под влиянием различных примеров выполнения обновлений, которые я нашел). Конечно, метод AttachTo (EntitySetName, entity) - правильное решение. Затем вы можете позвонить UpdateObject (entity) до TempContext.SaveChanges().
Можете ли вы показать трассировку стека? Это похоже на проблему с службами данных WCF. – Pawel
@Pawel Это не проблема с WCF, поскольку я могу использовать предложение where без использования метода Contains, такого как x.DuckID == 5 –
Я не знаю. Показать трассировку стека. Например, это сообщение «Метод« Любой »не поддерживается, когда MaxProtocolVersion меньше, чем« 3.0 », наверняка возвращается из служб данных WCF, поэтому я не знаю, откуда приходит NotSupportedException - Data Services или EF. – Pawel