首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

怎么在Entity Framework里进行对象传递更新

2012-02-02 
如何在Entity Framework里进行对象传递更新。//这个方法是把一个对象实例从外部传入进来,进行更新。public s

如何在Entity Framework里进行对象传递更新。
//这个方法是把一个对象实例从外部传入进来,进行更新。
  public string UpdateDepartment(Department dept)
{
  using (var db = new FlexDbEntities())
  {
  db.ApplyPropertyChanges("Department",dept);
  } 
}


//外部调用
Department de = Department.CreateDepartment(1);
de.Name = "new";
de.ParentId = 1;
....
UpdateDepartment(de);//传过去进行更新

我的期望是:通过外部的对象实例,传进去,只要是主键一样的,能进行Update操作。但以上的代码一直会报错:ObjectStateManager 不包含具有对“ServiceLibrary.Department”类型的对象的引用的 ObjectStateEntry

[解决办法]
CreateDepartment直接new一个对象,它和当前上下文并无关系,简单做法是根据pk查询出一个dept,然后修改属性并update。

但你的update方法也要修改,实体对象和entitycontext是相关的,查询,更新都应该在一个context里完成。
[解决办法]
MVC beta 版本结合 linq to entity 可以解决你这个功能
UpdateModel(post, new[]{ "Title", "Content", "Slug", "Tags", "Categories" }, new PostValueProvider(ControllerContext)); 

热点排行