Динамическое создание таблицы базы данных в ASP.Net Core 2 с Entity Framework - PullRequest
0 голосов
/ 06 июня 2018

У меня проблема с динамической таблицей, или пользователь создаст таблицу в веб-приложении и вставит запись после нее. Как я могу создать модель во время выполнения, не зная количества столбцов, введенных пользователем.Может ли EF поддерживать эту проблему?

Пример

У меня есть 1 текстовое поле для имени таблицы и затем textbox2 для числовых столбцов. После ввода числа столбцов он будет динамически создавать текстовое поле для имен столбцов, а затем пользователь будет сохранятьэто.

1 Ответ

0 голосов
/ 06 июня 2018

Не уверен, но, боюсь, ты не сможешь этого сделать.Но вы можете смоделировать это:

Классы для CodeFirst:

public class Table
{
    public int Id{get;set;}
    public string Name {get;set;}
    public ICollection<Column> Columns {get;set;}
    public ICollection<Row> Rows {get;set;}
}

public class Row
{
    public int Id{get;set;}
    public ICollection<ColumnValueBase> Values {get;set;}
}

public abstract class Column
{
    public int Id {get;set;}
    public Column Column {get;set;}
}

public abstract class ColumnValue
{
    public int Id {get;set;}
}

public class IntColumn : Column
{
    public IntColumnValue IntValue {get;set;}
}

// other types of columns and values

public class TablesContext : DbContext
{
    public DbSet<Table> Tables {get;set;}
}

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

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