У меня есть задача. Задача состоит в том, чтобы позволить пользователю создавать таблицу в базе данных. Пользователь вводит имена и типы столбцов, поэтому мы не знаем, сколько столбцов будет в нашей таблице. Проблема заключается в следующем: я должен использовать Entity Framework. Могу ли я сделать это с использованием структуры сущностей? Или это невозможно?Создать таблицу с использованием Entity Framework
0
A
ответ
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);
}
}
}
Окончательный результат:
Нет, это не возможно. Это НЕ то, для чего предназначен ORM. ORM предназначен для определения сопоставлений из базы данных и классов (которые определены во время компиляции). Для этого ваш пользователь должен иметь возможность определять классы ... во время выполнения ... – Aron
Спасибо. Я тоже так думал. Но учитель дал мне эту задачу. –
. Теоретически вы могли бы это сделать с помощью общих классов для построения структуры таблиц во время выполнения, а затем вызвать утилиту миграции, поставляемую с 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 –