Можно ли использовать Entity Framework для неизвестных таблиц базы данных? - PullRequest
2 голосов
/ 19 августа 2011

Пользователь выбирает базу данных и ее таблицу и просматривает таблицу в веб-приложении.Могу ли я достичь этого с Entity Framework?Я знаю, что EF - это структура ORM, но в этом случае я не могу создавать файл edmx для каждого выбораДаже если бы я это сделал, как мне, например, динамически создавать объекты POCO в соответствии с таблицей?Что мне делать в этом случае?Должен ли я идти с низким уровнем ADO.NET?

Ответы [ 3 ]

3 голосов
/ 19 августа 2011

Я думаю, что Entity Framework в этом случае не нужен. может , конечно, возможно использовать EF для чего-то подобного, но если это просто случай получения списка доступных имен таблиц из базы данных и предоставления пользователю возможности выбрать таблицу для просмотра, я быпросто выполните следующее:

Создайте раскрывающийся список на сайте и заполните его, используя результат запроса:

SELECT table_name FROM INFORMATION_SCHEMA.TABLES t

Затем, после того как пользователь выберет элемент из раскрывающегося списка, вы можете связатьВаша сетка с использованием Ado.net.Что-то вроде:

string tableName = "get value from dropdown";  
DataTable dt = new DataTable();

using (SqlConnection conn = new SqlConnection("connection string here"))
{
    string sql = string.Format("select * from {0}", tableName);
    SqlDataAdapter da = new SqlDataAdapter(sql, conn);
    da.Fill(dt);
}

// bind dt to your grid or gui component here.
2 голосов
/ 19 августа 2011

Редактировать Ну, я знаю, что вы можете сделать это хотя бы частично.Вы можете определенно позволить пользователю выбрать базу данных / таблицу, потому что вы можете предоставить свою собственную строку подключения / объект EntityConnect конструктору Contexts.Я не уверен, как можно динамически создавать сущности, хотя, я думаю, вам нужно иметь файл edmx, в котором уже есть все сгенерированные сущности, или написать их самостоятельно до этого.

1 голос
/ 19 августа 2011

Сначала вы должны указать EF на каждую базу данных, а не ожидать, что EF будет динамически просматривать новую базу данных в вашем приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...