У меня есть таблица, которая содержит два иностранных ключа. Оба являются одним из одного: одно отношения и оба необходимы.
Код: Выделить всё
[Table("Bob")]
public class bob {
[Key]
public Guid Id {get;set;}
public String Name {get;set;}
public Guid WorkingId { get;set;}
[ForeignKey("WorkingId")]
public virtual WorkingTable WorkingTable {get;set;}
public Guid NotWorkingId {get;set;}
//[ForeignKey("NotWorkingId") // commented out as causes exception
public virtual NotWorkingTable NotWorkingTable {get;set;}
}
[Table("WorkingTable")]
public class WorkingTable {
[key]
public Guid Id {get;set;}
public String AValue {get;set;}
}
[Table("NotWorkingTable")]
public class NotWorkingTable {
[key]
public Guid Id {get;set;}
public String AValue {get;set;}
}
< /code>
Обе отношения определены в SQL Server как: -< /p>
ForeignKeyBaseTable: Bob
ForeignKeyColumns: WorkingId (and NotWorkingId)
Primary/Unique Key Base: WorkingTable (and NotWorkingTable)
Primary/Unique Key Column: Id (for both)
< /code>
Код, который я использую внутри dbcontext, < /p>
var results = BobDbSet.AsNoTracking().ToList();
Примечание: я использую ASP.NET 4.8 (не ASP /> У кого -нибудь есть идея о том, как диагностировать эту проблему? Насколько мне известно, добавление свойства иностранного ключа в определение виртуального класса заставляет EF попытаться сопоставить его с первым ключом, определенным в этом классе (в данном случае идентификатор).>
Подробнее здесь: https://stackoverflow.com/questions/796 ... lways-null
Мобильная версия