EF插入相关对象

时间:2009-03-14 19:47:11

标签: entity-framework transactions silverlight-2.0 wcf-data-services foreign-key-relationship

我在实体框架上使用带有ado.net dataservices的silverlight客户端。

我有一个实体联系人和一个与外键关系船有关的实体地址...... 联系人可以有1个或多个地址,但地址需要至少1个联系人。 很基本...

我的联系人和地址的存储库有一个方法添加(T实体),...

在我的客户端上,我有一个表单,允许用户添加带有地址的联系人

我希望将两者都保存到数据库中......

Address a = new Address();
a.Street="Street",
a.City = "City"
a.Contact = 
 new Contact(){ Name="Name",Age="60"}

_repository.Add(a);

....

好的,我发现我无法立即保存相关的对象图,所以我做了类似的事情

DataBaseEntities.AddToContact(obj2Badded.Contact);
DataBaseEntities.AddToAddress(obj2Badded);
DataBaseEntities.SetLink(obj2Badded,"Contact",object2Badded.Contact);
DataBaseEinties.BeginSaveChanges(...)

在转换中是否有这样做,例如没有添加联系人时也不会添加地址,反之亦然...

......而我所尝试的一切都没有用......

如果有人可以指出我在这个主题的正确方向,我会想要添加一个相关的对象图=} ...

2 个答案:

答案 0 :(得分:0)

你的第一个例子应该可以正常工作,相关实体和所有。如果要为这两个实体插入新对象,则无需单独将相关实体添加到上下文中。因此,除非您在运行此代码时告诉我们问题是什么,否则很难提供帮助。

答案 1 :(得分:0)

我遇到了类似的问题,在添加类似

之类的内容后,它对我有用
DatabaseEntities.UpdateObject(obj2Badded);

之前

DatabaseEntities.BeginSavingChanged();

如果在项目中包含edmx并使用ObjectContext,则不需要这样做,但如果您创建Service引用并使用生成的DataServiceContext,则需要它。