如果我有一个具有关联的实体(例如Book.Publisher),如何保存新书并将其与现有发布者关联?
BTW我不想在我的模型中公开FK关联(即PublisherId)。
我一直在使用这样的东西:
var book = new Book { Title="whatever", Publisher = new Publisher { Id = 42 } };
context.Books.Add(book);
但这只是试图添加一个新的发布者。
我看到this question建议使用ObjectStateManager.ChangeObjectState,但如果我尝试这个,我会收到错误 - ObjectStateManager不包含ObjectStateEntry,引用了'Blah.Publisher'类型的对象。
答案 0 :(得分:3)
var pub = new Publisher { Id = 42 };
context.Publishers.Attach(pub);
var book = new Book { Title="whatever", Publisher = pub };
context.Books.Add(book);