【问题标题】:EF insert related objectsEF插入相关对象
【发布时间】:2009-03-14 19:47:11
【问题描述】:

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

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

我的联系人和地址有一个存储库,其中有一个方法 Add(T entity),...

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

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

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(...)

在没有添加联系人的情况下,也不会添加地址,反之亦然...

...而我尝试过的所有方法都不起作用...

如果有人能在这个主题上为我指出正确的方向,那就太好了,我只想添加一个相关的对象图 =} ...

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我遇到了类似的问题,添加类似的东西后它对我有用

      DatabaseEntities.UpdateObject(obj2Badded);
      

      就在之前

      DatabaseEntities.BeginSavingChanged();
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-10
        • 2021-10-19
        • 2021-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多