У меня есть сценарий, похожий на пример ниже, где у меня есть две таблицы, каждая из которых имеет необязательный внешний ключ, который указывает на запись в другой таблице. Это два разных отношения, которые не имеют ничего общего друг с другом. Но когда я пытаюсь создать миграцию, он, очевидно, думает, что это противоположные стороны одного и того же отношения, и выдает ошибку, что он не может определить основной конец ассоциации. Я вполне уверен, что есть решение, использующее свободный API, но я пока не смог его выяснить.
public class Person{
[Key]
public int ID {get; set;}
public int? FavoriteBookID {get; set;}
[ForeignKey("FavoriteBookID")]
public virtual Book FavoriteBook {get; set;}
}
public class Book{
[Key]
public int ID {get; set;}
public int? AuthorID {get; set;}
[ForeignKey("AuthorID")]
public virtual Person Author {get; set;}
}
Чтобы еще больше усложнить ситуацию, я хотел бы определить 1-ко-многим свойство навигации, которое будет основано на внешнем ключе в другой таблице. Например, добавление свойства к человеку с именем «BooksIWrote», которое возвращает коллекцию всех сущностей Book с соответствующим идентификатором автора. Что странно, если я добавлю свойство «BooksIWrote» и создам миграцию, я не получу ошибку «главный конец», но она создаст дополнительное поле «Person_ID» в таблице Book, которое не требуется. .
Любая помощь очень ценится.