Идея: ключевой объект, который может быть заменен другим ключом, если в этом случае они получают FK, указывающие друг на друга.
public class Key {
string Id;
string ReplacesId;
Key Replaces;
string ReplacedById;
Key ReplacedBy;
}
Текущее отображение
modelBuilder.Entity<Key>().HasOne(k => k.Replaces)
.WithOne()
.HasForeignKey<Key>(k => k.ReplacesId)
.IsRequired(false);
modelBuilder.Entity<NagKey>().HasOne(k => k.ReplacedBy)
.WithOne()
.HasForeignKey<NagKey>(k => k.ReplacedById)
.IsRequired(false);
Проблема:При попытке сохранить сущность происходит сбой с ошибкой дублирования внешнего ключа (которая равна нулю) следующим образом:
System.Data.SqlClient.SqlException: Невозможно вставить строку дублирующегося ключа в объект 'dbo.Keys'с уникальным индексом 'IX_Keys_ReplacedById'.Дубликат значения ключа ().Заявление было прекращено.