实体框架代码优先 - 通过主键将子实体添加到父级

时间:2011-03-10 19:22:48

标签: c# .net entity-framework-ctp5

在实体框架代码中首先,CTP5是否可以仅使用子代码的主键将子实体添加到父实体集合中?我的目标是避免必须首先从数据存储中加载子实体。

对于奖励积分,是否可以使用父母和子主键完成(即根本不加载任何实体)?

1 个答案:

答案 0 :(得分:0)

在我脑海中针对CTP4编译,所以要注意。

public void AddPersonToList(int id, int toAdd)
{
  var mailList = new MailList { ID = id, ContactInformations = new List<ContactInformation>() };
  this.db.MailLists.Attach(mailList);

  var ci = new ContactInformation { ID = toAdd };
  this.db.ContactInformations.Attach(ci);
  this.db.ObjectStateManager.ChangeRelationshipState(mailList, ci, ml => ml.ContactInformations, System.Data.EntityState.Added);

}

在保留任何内容之前,您需要调用SaveChanges。

仅使用ID附加和实体并与Statemanager一起工作在EF中非常有效,并且允许您创建一些非常好的解决方案。