Рекомендуется хранить большие строки в SQL Server с использованием Entity Framework Core - PullRequest
0 голосов
/ 28 августа 2018

Я ищу лучшую практику для сохранения списка строк в базе данных с использованием Entity Framework Core.

Мои данные - это набор ролей, может быть, около 100 или более ролей, поэтому у меня есть два варианта:

  1. Используйте другую таблицу и установите некоторые отношения.
  2. Используйте один тип столбца nvarchar(max) и разделите роли на ;

Мне нужно знать, какой путь лучше и почему?

Пока мой код использует опцию 2 для хранения данных и конвертер значений Entity Framework для преобразования из списка в строку с разделителем ; и наоборот.

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);

    modelBuilder.Entity<User>(c =>
    {
        c.Property(f => f.Roles).HasConversion
        (
            v => String.Join(";", v),
            v => v == null ? new List<string>() : v.Split(';', StringSplitOptions.None).ToList()
        );
    });

}

1 Ответ

0 голосов
/ 28 августа 2018

С точки зрения чисто моделирования данных, абсолютно необходимо разделить его на несколько строк в отдельной таблице. Существует так много типов запросов, что одна строка не будет

Это независимо от того, используете ли вы Entity Framework или что-то еще.

...