EFCore вручную удаляет внешний ключC#

Место общения программистов C#
Anonymous
EFCore вручную удаляет внешний ключ

Сообщение Anonymous »

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

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

public class Note
{
public Guid? MasterId { get; set; }
public string? MasterType { get; set; } = string.Empty;
public UserValueObject User { get; private set; }
public string Content { get; private set; }

//Removed for simplicity
}

public class Quote
{
public Branch Branch { get; private set; }
public ICollection? Notes { get; private set; } = new List();

//Removed for simplicity
}

public class Lead
{
public DateTime? DateConverted { get; set; }
public Branch Branch { get; private set; }
public LeadStatus Status { get; private set; }
public ICollection? Notes { get; private set; } = new List();

//Removed for simplicity
}
Конфигурации объектов EF

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

public void Configure(EntityTypeBuilder builder)
{
//Simlified
builder.HasMany(x => x.Notes)
.WithOne()
.HasForeignKey(x => x.MasterId)
.IsRequired(false)
.OnDelete(DeleteBehavior.NoAction);
}

public void Configure(EntityTypeBuilder builder)
{
//Simlified
builder.HasMany(x => x.Notes)
.WithOne()
.HasForeignKey(x => x.MasterId)
.IsRequired(false)
.OnDelete(DeleteBehavior.NoAction);
}
Приведенные выше конфигурации всегда генерируют ограничение внешнего ключа, даже следуя примеру (без свойства навигации) Документы MS EF

Подробнее здесь: https://stackoverflow.com/questions/790 ... oreign-key

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