EF6: необязательный иностранный ключ всегда нулевойC#

Место общения программистов C#
Ответить
Anonymous
 EF6: необязательный иностранный ключ всегда нулевой

Сообщение Anonymous »

У меня есть приложение C# (C# 7.5), которое использует EF6. < /p>
У меня есть таблица, которая содержит два иностранных ключа. Оба являются одним из одного: одно отношения и оба необходимы.

Код: Выделить всё

[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)
Код, который я использую внутри dbcontext , является

Код: Выделить всё

 var results = BobDbSet.AsNoTracking().ToList();
Если я изучаю результаты [0] В качестве примера, я могу видеть, что WorkingId и рабочая стола заполняется, но в то время как NotWorkingId имеет допустимое значение (решает для цели в T-SQL), NotWorkingTable IS null . ASP.NET работает на .NET 4.8 (не ASP.NET CORE или EF CORE). < /P>
У кого -нибудь есть идея о том, как диагностировать эту проблему? Насколько мне известно, добавление свойства иностранного ключа в определение виртуального класса заставляет EF пытаться сопоставить его с первым ключом, определенным в этом классе (в данном случае идентификатор).>

Подробнее здесь: https://stackoverflow.com/questions/796 ... lways-null
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»