现有实体是否可以通过在其集合导航属性中添加它们与其他新添加的实体与ObjectContext相关联?

时间:2011-04-03 18:35:05

标签: entity-framework-4 ado.net-entity-data-model

第一组实体中的外键是否会使用新添加的实体的IDENTITY进行更新?这可能吗?

我有一个用户表和代理商表。

用户拥有一个可以为null的AgencyId外键。

所以在我的Entity Framework ObjectContext中,我将有一个Agency实体,它将Users作为Users类型集合的导航属性。

我向Agency实体添加了一个新对象,然后我知道我可以将Users对象添加到该Agency实体,并将它们保存到数据库中。

但我想要的是:

我想将已有的用户添加到该代理实体,以便在数据库中为该新代理生成任何标识,它将进入添加到此代理的用户的用户表的外键“AgencyId”。

可以使用实体框架完成吗?

1 个答案:

答案 0 :(得分:1)

当然可以做到。只是做:

var agency = new Agency { ... };

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

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

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