Как правильно записать List<string> в БД с помощью Entity Framework?

154
28 июля 2019, 21:40

Нужна база с такими двумерными списками, как ее правильно записать? Вряд ли получится сделать public DbSet<List<List<string>>> lst { get; set; } (я не пробовал)

Вот был класс Темы, для записи объектов которого уже есть таблица (кроме записи материалов)

public class Theme: Model // Model содержит в себе строчные свойства
{
    #region Свойства
    public int Id { get; set; }
    public List<List<string>> Materials { get; set; }
    public int? ParentId { get; set; }
    public virtual Path Parent { get; set; }
    #endregion
}

Думаю переделать так

public class Theme: Model
{
    #region Свойства
    public int Id { get; set; }
    public List<Material> Materials { get; set; }
    public int? ParentId { get; set; }
    public virtual Path Parent { get; set; }
    #endregion
}
public class Material
{
    public int Id { get; set; }
    public string Name {get;set;}
    public string Link {get;set;}
    public int? ParentId { get; set; }
    public virtual Theme Parent { get; set; } //класс агрегатор
}

И запишу такие классы в бд

Answer 1

В принципе, после уточнения задача выглядит как самое обычное отношение один-ко-многим.

Ну вот как я показываю обычно на примере продукта, заказа и позиции заказа: у одного заказа может быть несколько позиций (тынц1) или у одного бренда может быть несколько продуктов (тынц2). Подход в рамках типичного мышления крудоделателя и формошлёпа: всё унифицировано, одинаково.

Также альтернативно вы можете просто сериализовать весь список целиком, скажем в json, и хранить его там целиком. (Пример кода можно посмотреть в этом вопросе) Подход удобен для value object'ов, когда вам особо не нужны эти строки вне контекста вашего root объекта.

READ ALSO
Как открыть модальное окно ShowDialog() в FrameWork 4.0? Исключение in PresentationCore.dll

Как открыть модальное окно ShowDialog() в FrameWork 4.0? Исключение in PresentationCore.dll

Подскажите пожалуйста, разрабатываю приложение WPF под FrameWork 40, т

118
Фабрика для EF core в режиме dbcontext pool

Фабрика для EF core в режиме dbcontext pool

Необходимо сделать фабрику (проще лямбду конечно), которая бы выдавала свободный dbcontext из пула

155
FastColoredTextBox

FastColoredTextBox

Через NuGet установил данную библиотеку

103