Member 14199527 Ответов: 2

Как мы используем динамические запросы в файлах EDMX т. е. корпоративной библиотеке


В моем одном из проектов я не имею контроля над базой данных, потому что она управляется клиентом. Предполагается, что мы создадим пользовательский интерфейс для отображения значений из БД. В некоторых хранимых процедурах пользователь возвращает данные с помощью динамического SQL-запроса. Теперь мы находим проблему в создании объектов edmx в Entity Framework для этих процессов. Ребята, пожалуйста, помогите здесь.

Технология : ASP.Net MVC, Entity Framework 5, MS-SQL Server

Что я уже пробовал:

Мы попробовали использовать ADO.Net, но мы хотим вызвать то же самое через корпоративную библиотеку. Этим определенно займется Microsoft.

2 Ответов

Рейтинг:
2

Vincent Maverick Durano

Похоже, вы хотели бы построить IQueryable<T>. Выполните поиск по динамическому выражению запроса на EF, чтобы получить дополнительную информацию. Вот один пример, который может помочь вам начать работу: Динамические выражения запросов с Entity Framework | Code with the wind[^]

Если вы ожидаете другого набора результатов, то вы можете использовать IEnumerable<dynamic> чтобы вернуть анонимный объект на основе динамического запроса Row sql.

Кроме того, если вы хотите воспользоваться преимуществами новых функций EF, включая полную поддержку storedprocedures, то вместо этого вам нужно посмотреть на EF 6: Entity Framework Code First и хранимые процедуры[^]


#realJSOP

Ef6 не имеет “полной поддержки” для хранимых процессов. Спроси, откуда я знаю.

Vincent Maverick Durano

Это приятно знать. Ну на самом деле я не использую EF для управления SPs но я рад что вы заговорили об этом :) По крайней мере, EF6 имеет лучшую поддержку SPs по сравнению с предыдущими версиями. :)

Рейтинг:
2

#realJSOP

Самый простой способ - настроить собственную базу данных, импортировать в нее данные (используя хранимые процедуры клиента для получения данных), а затем написать модели EF для загрузки их из вашей базы данных.

EF не сможет правильно определить модели из наборов данных*, возвращаемых хранимыми процессами*, которые выбраны из временных таблиц или (как представляется) динамического sql. Если вы используете EF6 или более раннюю версию, не задерживайте дыхание в ожидании исправления от MS. Они совершенно не заинтересованы в поддержании чего-либо более старого, чем EF7 (.Net Core).