Как настроить, чтобы при удалении зависимого каскада удалялся и принципал (один-к-одному)?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как настроить, чтобы при удалении зависимого каскада удалялся и принципал (один-к-одному)?

Сообщение Anonymous »

Для этих объектов:

Код: Выделить всё

public class StoredArticle
{
public int Id { get; set; }
public string Title { get; set; }
public StoredTimePeriod TimePeriod { get; set; } = null!;
}

public class StoredTimePeriod
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime Start { get; set; }
public DateTime End { get; set; }
}

Я хочу, чтобы Article и TimePeriod имели отношение один к одному. Насколько я понял, TimePeriod является основным, а Article является зависимым, поскольку его внешний ключ указывает на TimePeriod
Вот как я настраиваю их отношения:

Код: Выделить всё

modelBuilder.Entity(entity =>
{

entity
.HasOne(e => e.TimePeriod)
.WithOne()
.HasForeignKey("TimePeriodId")
.OnDelete(DeleteBehavior.Cascade);
});
При такой настройке происходит следующее:
  • При удалении статьи TimePeriod остается в базе данных.
    При удалении TimePeriod статья также удаляется (каскадом)
Но я хочу наоборот. И я не хочу добавлять ArticleId в TimePeriod, потому что TimePeriod используется и в других классах.

Подробнее здесь: https://stackoverflow.com/questions/785 ... e-principa
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»