Не устанавливается обязательная связь элементов таблиц Entity Framework
Выскакивает исключение, которое говорит о том что нет звязи элементов, хотя на диаграмме в sql она вроде есть
internal class Books
{
public int Id { get; set; }
public string Name { get; set; }
public int AuthorsID { get; set; }
public virtual Library library{ get; set; }
}
internal class Library
{
public int Id { get; set; }
public string Name { get; set; }
public string Style { get; set; }
public virtual ICollection<Books> Books { get; set; }
}
internal class MyDbContext : DbContext
{
public MyDbContext() : base("DbConnectionString")
{
}
public DbSet<Library> Libraries { get; set; }
public DbSet<Books> Books { get; set; }
}
И сама программа, которая добавляет элементы в таблицу и выводит инфу в консоль
using(var context = new MyDbContext())
{
var author = new Library()
{
Name = "Gogol",
Style = "Horror"
};
var author2 = new Library()
{
Name = "Puskkin"
};
context.Libraries.Add(author);
context.Libraries.Add(author2);
context.SaveChanges();
var books = new List<Books>()
{
new Books() { Name = "Viy", AuthorsID = author.Id},
new Books() { Name ="Evgeniy Onegin", AuthorsID = author2.Id}
};
context.Books.AddRange(books);
context.SaveChanges();
foreach (var book in books) {
Console.WriteLine($" Book name = {book.Name}, Authors name = {book.library.Name}");
}
И когда я пытаюсь вывести автора книги {book.library.Name}
вылезает исключение
Источник: Stack Overflow на русском