Есть ли способ составить запросы от двух разных моделей сущностей, если модели попадают в одну и ту же базовую базу данных.
У меня есть сценарий: У меня есть структура, которая использует EF для доступа к данным (EDM 1) У меня есть клиентское приложение, которое использует службы фреймворка, а также использует EF для собственного доступа к данным. (EDM2)
Есть ситуации, когда мне нужно составлять запросы и присоединяться к объектам, которые охватывают 2 EDM.
Есть ли способ сделать это, не получая данные в памяти из первого EDM, а затем применять дополнительные предикаты/объединения в памяти от объектов второго EDM?
Надеюсь, я правильно сформулирую это.
ИЗМЕНИТЬ @Ladislav Mrnka: Первый EDM - это уровень доступа к данным для многоразовой системы. Не имеет смысла связывать созданные EF объекты из этого EDM с те, которые потребляют клиент Это побеждает многократное использование API, если я это сделаю, и мне придется переносить дополнительную набухание (Метаданные EF и таблицы БД клиента) каждый раз, когда я хотел перераспределить фреймворк. Кроме того, это упростило бы управление моделью в дизайнере.
В настоящее время я использую то, что вы упоминаете в п. 7, как solutuon, и производительность ужасающая из-за того, что мне приходится возвращать больше данных (т.е. сущностей), чем нужно из фреймворка, используя EDM1, а затем отфильтровать те, которые не нужны на основе предикатов/условий, основанных на значении свойства от объектов во втором EDM. Конечный результат - огромная деградация производительности и несчастливый DBA.
По этой причине я в конечном итоге нажал логику, необходимую для извлечения объектов на SPROC, в котором я могу получить доступ к таблицам, которые используют EDM и применяют предикаты, необходимые и весь запрос выполняется в БД, в отличие от переноса данных в память а затем отфильтровать ненужные. Да, я не могу использовать LINQ
Пункт 8, который вы упоминаете, звучит интересно, но из того, что звучит, я сомневаюсь, что вы получаете сильную печать во время разработки, или вы? Можете ли вы загрузить образец кода где-нибудь, чтобы я мог попробовать?