EF4 CodeFirst CTP4 - 插入现有关联

时间:2010-09-03 14:58:57

标签: entity-framework entity-framework-4 code-first ef4-code-only

如果我有一个具有关联的实体(例如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'类型的对象。

1 个答案:

答案 0 :(得分:3)

var pub = new Publisher { Id = 42 };
context.Publishers.Attach(pub);
var book = new Book { Title="whatever", Publisher = pub };
context.Books.Add(book);