У меня есть два оцениваемых объекта E
и S
, S содержится внутри E, так что вы говорите E.S, и они оба используют один и тот же объект R
для оценки; R всегда будет иметь ТОЛЬКО ОДИН оцененный объект за раз, поэтому, если R.E.HasValue == true
, то R.S.HasValue
никогда не будет истинным.
У меня есть все объекты R из базы данных, и у меня есть E. Каково будет лямбда-выражение для получения всех Rs, где R.S в E.S ??
ОБНОВЛЕНИЕ
Я нашел это Документация MSDN , где говорится:
Ссылка на нескалярные переменные,
такой как сущность, в запросе нет
поддерживается. Когда такой запрос выполняется,
исключение NotSupportedException
брошен с сообщением, в котором говорится
«Невозможно создать постоянное значение
Тип EntityType. Только примитивные типы
(«такие как Int32, String и Guid»)
поддерживаются в этом контексте. "
Итак ... Я не могу использовать ответ А-Дубба, так как запрос гласит
R.Where(r => r.SID.HasValue).Where(r => E.S.Contains(r.S))
Что приводит к NotSupportedException
... У меня все еще есть свойство R.SID
, которое имеет тип int?
, но как я мог тогда запросить все E.S, чтобы получить их идентификаторы?
P.S. E.S. имеет тип EntityCollection.