У меня есть функция вне моего EDM, которую я хотел бы включить в некоторые из моих выражений Linq to Entities. Функция возвращает IEnumerable из Int. Пример того, как я мог бы использовать это:
context.Employees.Where(e => GetValidEmployeeIds().Contains(e.EmployeeId));
Функция GetValidEmployeeIds - это функция, которая возвращает IEnumerable. Результат этой функции - не то, что я могу получить из базы данных - мне в значительной степени приходится получать ее извне из EDM.
Когда я выполняю строку кода, я получаю «LINQ to Entities не распознает метод» - что делает с тех пор. Однако, если я прерву вызов выражения, он будет работать нормально:
var validEmployees = GetValidEmployeeIds();
context.Employees.Where(e => validEmployees.Contains(e.EmployeeId));
У меня такой вопрос: могу ли я что-нибудь сделать, чтобы дать команду Linq to Entities не анализировать функцию как часть выражения? Чтобы вместо этого проанализировать результат функции. Я надеялся, что есть атрибут, которым я мог бы украсить метод, но не смог найти его.
Обычно я был бы в порядке, просто прерывая вызов и не используя его непосредственно в выражении. Тем не менее, я собираюсь часто использовать этот вызов и надеялся немного очистить код.