У меня есть «AddBookForm», который получает Author в качестве параметра. Когда форма открывается, я ввожу название книги, а затем книга должна быть сохранена с автором как отношение.
Проблема в том, что, когда я сохраняю книгу, я могу найти в базе данных новую запись автора, и книга становится связанной с новой.
В качестве примера: у меня есть Автор с ID 6 и именем «Франц Кафка», и я передаю этот Author-Object в качестве параметра моей AddBookForm. Я ввожу заголовок и нажимаю «сохранить», затем в Базе данных я могу найти нового Автора с последовательным номером 7 с тем же Именем, и только что добавленная Книга связана с ID 7 вместо 6.
class Book
{
public int Id { get; set; }
public Author Author { get; set; }
public string Title { get; set; }
}
using (AddBookForm frm = new AddBookForm(author))
{
frm.ShowDialog();
}
public partial class AddBookForm: Form
{
Author author;
public AddBookForm(Author author)
{
InitializeComponent();
this.author = author;
}
private void button1_Click(object sender, EventArgs e)
{
using (MyDbContext db = new MyDbContext())
{
Book book = new Book();
book.Title = textBox1.Text;
book.Author = this.author;
db.Books.Add(book);
db.SaveChanges();
this.Close();
}
}
}