У меня есть две сущности: Job и Orderable в нашей базе данных с первым кодом:
(очень простые) модели этих двух:
class Job
{
public Guid Id {get; set;}
public string JobName {get; set;}
public List<Orderable> Items {get; set;}
}
class Orderable
{
public Guid Id {get; set;}
public string MaterialNumber {get; set;}
}
Я хотел иметь возможностьссылаться на Job из заказа, поэтому я добавил свойство следующим образом:
public Job OwningObject {get; set;}
Но когда я выполнил миграцию, он создал второй внешний ключ для этого объекта.Теперь, кажется, что если я получаю заказы от работы, он использует ключ1, но если я получаю работу от заказа, он использует ключ2.
В нашем методе OnmodelCreating в нашем контексте мы добавили следующее до того, как ключ был создан, что, как мне показалось, требовалось для его работы, но я не уверен, может ли это вызвать проблему.
modelBuilder.Entity<Job>().HasMany(x => x.Items).WithOne();
Нам удалось заставить ключ ссылаться на нужное поле с аннотацией данных:
[ForeignKey("OwningObjectId1")]
Но это кажется хакерским, и мне не нравится это как постоянное решение.