Как открыть базу данных с неизвестной структурой с помощью Entity Framework 4 - PullRequest
0 голосов
/ 12 мая 2011

У меня есть «Googled» и «Binged» для всего Интернета, пытающегося решить эту проблему ... У меня не было успеха, поэтому я вернулся в ADO.NET 4.x, чтобы продолжить свою работу

У меня есть программа, в которой пользователь может выбрать и открыть любую базу данных ... Таблицы, представления, сохраненные процедуры и т. Д. Выбранной базы данных отображаются в виде дерева, поэтому пользователь может щелкнуть узел и просматривать / редактировать данные в сетке.

После нескольких попыток с EF4 (DB First, Model First, Code First и т. Д.) Я не могу найти способ во время выполнения генерировать сущности для выбранной пользователем базы данных ...

Любой может предоставить дополнительную информацию ... может быть, пример кода ???

1 Ответ

0 голосов
/ 12 мая 2011

Вы не можете. Entity Framework (как и любой другой ORM) используется для отображения модели данных на логическую модель. Если нет отображения (и нет логической модели), то нет Entity Framework.

ADO - путь в этом случае.

После некоторого опроса это можно сделать, но это включает в себя безумные шаги.

Чтобы сделать это, вам нужно сгенерировать xml edmx из информации, которую вы получите, запросив основную базу данных, из этого xml сгенерировать классы (контекст данных и сущности) во время выполнения, загрузить их в свой домен приложений через код дом, и затем вы можете использовать этот динамически генерируемый контекст данных через Entity Framework.

В одном предложении: для такого сценария, когда ваша модель данных полностью неизвестна и изменяется, придерживайтесь хорошего старого ADO.NET. Это специально для этого.

...