public class Record
{
public Guid? Id { get; set; }
public virtual IList StatusInstances { get; set; } = default!;
public Guid? CurrentStatusId { get; set; } = default!;
public virtual StatusInstance CurrentStatus { get; set; } = default!;
}
public class StatusInstance
{
public Guid? RecordId { get; set; }
}
Я хотел бы добавить как в список, так и в один экземпляр. У меня есть похожие таблицы, и я бы тоже хотел работать таким же образом, но, очевидно, это приводит к циклическому предупреждению о зависимостях.
Что я пробовал и работает:
- < li>Я могу добавить запись с текущим статусом, но не добавляю ее в список и не добавляю идентификатор записи. Затем я могу добавить последующий новый статус после создания записи, но первый статус будет потерян.
- Я могу добавить запись без какого-либо статуса ни в список, ни в текущий, а затем добавить к обоим после первоначальное сохранение, однако из-за уникального способа работы приложения это невозможно.
- Я мог бы удалить текущий статус и сохранить все в списке, однако из-за того, как я использую структуру сущностей, я нужна недвижимость с отношениями один к одному. Я могу настроить запись, чтобы выбрать первый статус в качестве свойства, однако для этого мне нужно получить полный список, а затем сначала выбрать. Не хочу для этого получать полный список.
Для справки у меня есть этот код в OnModelCreating
modelBuilder.Entity()
.HasOne(r => r.CurrentStatus)
.WithOne()
.HasForeignKey(r => r.CurrentStatusId);
modelBuilder.Entity()
.HasMany(r => r.StatusInstances)
.WithOne()
.HasForeignKey(r => r.RecordId);
Подробнее здесь: https://stackoverflow.com/questions/791 ... dependency