实体框架代码优先 - 通过主键将子实体添加到父实体
Posted
技术标签:
【中文标题】实体框架代码优先 - 通过主键将子实体添加到父实体【英文标题】:Entity Framework Code First - Add Child Entity to Parent by Primary Key 【发布时间】:2011-03-10 19:22:48 【问题描述】:在实体框架代码优先 CTP5 中,是否可以仅使用子实体的主键将子实体添加到父实体集合?我的目标是避免必须首先从数据存储中加载子实体。
对于奖励积分,这是否可以仅使用父主键和子主键来完成(即根本不加载任何实体)?
【问题讨论】:
【参考方案1】:在我的脑海中针对 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 中效果非常好,并允许您创建一些非常好的解决方案性能明智。
【讨论】:
以上是关于实体框架代码优先 - 通过主键将子实体添加到父实体的主要内容,如果未能解决你的问题,请参考以下文章