我在实体框架上使用带有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(...)
在转换中是否有这样做,例如没有添加联系人时也不会添加地址,反之亦然...
......而我所尝试的一切都没有用......
如果有人可以指出我在这个主题的正确方向,我会想要添加一个相关的对象图=} ...
答案 0 :(得分:0)
你的第一个例子应该可以正常工作,相关实体和所有。如果要为这两个实体插入新对象,则无需单独将相关实体添加到上下文中。因此,除非您在运行此代码时告诉我们问题是什么,否则很难提供帮助。
答案 1 :(得分:0)
我遇到了类似的问题,在添加类似
之类的内容后,它对我有用DatabaseEntities.UpdateObject(obj2Badded);
之前
DatabaseEntities.BeginSavingChanged();
如果在项目中包含edmx并使用ObjectContext,则不需要这样做,但如果您创建Service引用并使用生成的DataServiceContext,则需要它。