Entity framework 4 通过将现有实体添加到ObjectContext的集合导航属性中,它们是否可以与新添加到ObjectContext的其他实体关联?

Entity framework 4 通过将现有实体添加到ObjectContext的集合导航属性中,它们是否可以与新添加到ObjectContext的其他实体关联?,entity-framework-4,ado.net-entity-data-model,Entity Framework 4,Ado.net Entity Data Model,第一组实体中的外键是否会更新为新添加实体的标识?这可能吗 我有一个用户表和代理表 用户的AgencyId外键可以为空 因此,在我的实体框架ObjectContext中,我将有一个代理实体,该实体将用户作为用户集合类型的导航属性 我将一个新对象添加到代理实体,然后我知道我可以将用户对象添加到该代理实体,并将它们保存到数据库中 但我想要的是: 我想将已经存在的用户添加到该代理实体中,这样无论在datbase中为该新代理生成什么标识,它都会进入添加到此代理的用户的外键“AgencyId”用户表中 使用

第一组实体中的外键是否会更新为新添加实体的标识?这可能吗

我有一个用户表和代理表

用户的AgencyId外键可以为空

因此,在我的实体框架ObjectContext中,我将有一个代理实体,该实体将用户作为用户集合类型的导航属性

我将一个新对象添加到代理实体,然后我知道我可以将用户对象添加到该代理实体,并将它们保存到数据库中

但我想要的是:

我想将已经存在的用户添加到该代理实体中,这样无论在datbase中为该新代理生成什么标识,它都会进入添加到此代理的用户的外键“AgencyId”用户表中


使用实体框架可以做到这一点吗?

确保可以做到。只要做:

var agency = new Agency { ... };

foreach (var user in context.Users.Where(u => ...))
{
    agency.Users.Add(user);
}

context.Agencies.Add(agency);
context.SaveChanges();

用户实体中的所有外键都将设置为插入代理的新id。

实际上,我以前尝试过,但遇到了一些错误,因此我认为可能是我遗漏了什么,所以我在这里询问。我会再试一次谢谢你。