У меня есть таблица, которая содержит два иностранных ключа. Оба являются одним из одного: одно отношения и оба необходимы.
Код: Выделить всё
[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)
Код: Выделить всё
var results = BobDbSet.AsNoTracking().ToList();
У кого -нибудь есть идея о том, как диагностировать эту проблему? Насколько мне известно, добавление свойства иностранного ключа в определение виртуального класса заставляет EF пытаться сопоставить его с первым ключом, определенным в этом классе (в данном случае идентификатор).>
Подробнее здесь: https://stackoverflow.com/questions/796 ... lways-null
Мобильная версия