Вопрос по дизайну более, чем по какой-то проблеме. Как правильно указывать связи между таблицами. Связи ведь можно указать с двух таблиц, таким образом они дублируют друг друга. Пример
public void Configure(EntityTypeBuilder<Series> builder)
{
builder.ToTable("Series");
builder.HasKey(s => s.SeriesId);
// SERIES<->SUBSERIES: one to many
builder.HasMany(s => s.Subseries)
.WithOne(ss => ss.Series)
.HasForeignKey(ss => ss.SeriesId);
}
и
public void Configure(EntityTypeBuilder<Subseries> builder)
{
builder.ToTable("Subseries");
builder.HasKey(ss => ss.SubseriesId);
// SUBSERIES<->SERIES: many to one
builder.HasOne(ss => ss.Series)
.WithMany(s => s.Subseries)
.HasForeignKey(ss => ss.SeriesId);
}
В таком случае мы дублируем указание внешнего ключа, также если добавить поведение по удаление - то будем дублировать и него (OnDelete(DeleteBehavior.*))
Такое описание не вызывает проблем при компиляции и выполнении,но может вызвать проблему и путаницу при несовпадении. Какая практика лучшего описания таблицы? ( я думаю, что лучше описывать внешний ключ и его поведение в таблице, где этот ключ существует, а в таблице, на которую он указывает его вообще никак не описывать; но все же я не уверен в этом)
Правильным будет связь один ко многим. У одного покупателя много покупок => даже если у многих покупок один покупатель, это все равно связь один ко многим. Правильным будет запись, как в первом случае - один к многим. Вы ведь описываете в БД реальные сущности, вот и думайте о них реально.
Пример MS SQL 1
Metanit неплохо об EF
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Подскажите, вот у меня есть UserControl на нем listBox, при нажатии на Item необходимо помещать Page во Frame Content главной формы (MainWindow)Как такое можно провернуть?
Подскажите, как можно с помощью php пересохранить файл с указанием даты и текущего времени?