C# и EF Core: несколько объектов с отношениями одного типаC#

Место общения программистов C#
Ответить
Anonymous
 C# и EF Core: несколько объектов с отношениями одного типа

Сообщение Anonymous »

У меня есть сущность EF Core (7.0.20) Member, такая:

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

public class Member : BaseEntity
{
public Warn FirstWarn { get; set; }
public Warn SecondWarn { get; set; }
public Warn ThirdWarn { get; set; }
}

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

BaseEntity
в основном имеет только одно поле — Id.
И у меня есть участник, который может иметь три предупреждения:

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

public class Warn : BaseEntity
{
public Member Responsible { get; set; }
public Member IssuedTo { get; set; }
public string Reason { get; set; }
}
Мне нужно, чтобы поле IssuedTo было связью между Member и Warn, и установите поле Responsible вручную в коде. >
Если я просто оставлю это так, я получу ошибку:

Невозможно определить связь, представленную навигацией «Member. FirstWarn» типа «Warn»

Я пытался использовать свойство NotMapped, но оно полностью удаляет эти три поля из базы данных.
Затем я попытался настроить метод OnModelCreating с помощью этого кода:

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

modelBuilder.Entity(m =>
{
m.HasOne(w => w.FirstWarn)
.WithOne(m => m.IssuedTo);

m.HasOne(w => w.SecondWarn)
.WithOne(m => m.IssuedTo);

m.HasOne(w => w.ThirdWarn)
.WithOne(m => m.IssuedTo);
});
Но у меня возникла ошибка:

Невозможно создать связь между «Warn.IssuedTo» и «Member.SecondWarn». ', поскольку между "Warn.IssuedTo" и "Member.FirstWarn" уже существует связь


Подробнее здесь: https://stackoverflow.com/questions/789 ... -relations
Ответить

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

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

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

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

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