Я пытаюсь применить уникальное составное ограничение, одна из частей ограничения - внешний ключ.Единственный способ заставить его работать, это явно определить внешний ключ в моем доменном классе, которого я хочу избежать.Возможно ли это?
Проблема и обходной путь применяются как к HasAlternateKey
, так и к HasIndex
.Решение строится нормально, но при создании миграции это ограничение игнорируется до тех пор, пока свойство shadow не станет реальным свойством в классе домена.
Это НЕ работает (миграция игнорирует это):
entity.HasAlternateKey(e => new { e.Header.Id, e.Version, e.StartDate });
Это работает ПОСЛЕ превращения свойства тени HeaderID в реальное:
entity.HasAlternateKey(e => new { e.HeaderId, e.Version, e.StartDate });
entity.HasOne(e => e.Header).WithMany().HasForeignKey(f => f.HeaderId);