2015-05-30 3 views
0

У меня есть задача. Задача состоит в том, чтобы позволить пользователю создавать таблицу в базе данных. Пользователь вводит имена и типы столбцов, поэтому мы не знаем, сколько столбцов будет в нашей таблице. Проблема заключается в следующем: я должен использовать Entity Framework. Могу ли я сделать это с использованием структуры сущностей? Или это невозможно?Создать таблицу с использованием Entity Framework

+3

Нет, это не возможно. Это НЕ то, для чего предназначен ORM. ORM предназначен для определения сопоставлений из базы данных и классов (которые определены во время компиляции). Для этого ваш пользователь должен иметь возможность определять классы ... во время выполнения ... – Aron

+0

Спасибо. Я тоже так думал. Но учитель дал мне эту задачу. –

+0

. Теоретически вы могли бы это сделать с помощью общих классов для построения структуры таблиц во время выполнения, а затем вызвать утилиту миграции, поставляемую с Entity Framework во время выполнения из вашего приложения. http://thedatafarm.com/data-access/ef-code-first-migrations-update-database-outside-of-visual-studio/ и https://msdn.microsoft.com/en-gb/data/jj591621 .aspx –

ответ

1

Возможно, это не лучший подход, но вы можете отправить в свою базу данных запрос, содержащий определение CREATE TABLE.

Например:

public class Context : DbContext 
{ 

} 

class Program 
{ 
    static void Main(string[] args) 
    { 
     var myTableDefinition = "CREATE TABLE TEST(COLUMNTESTE INTEGER PRIMARY KEY)"; 
     using (var context = new Context()) 
     { 
      context.Database.CreateIfNotExists(); 
      context.Database.ExecuteSqlCommand(myTableDefinition); 
     } 
    } 
} 

Окончательный результат:

enter image description here