读书人

在DbContext中更新数据有关问题

发布时间: 2012-12-25 16:18:29 作者: rapoo

在DbContext中更新数据问题,在线等
public class Corporation
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int cid { get; set; }
public string cName { get; set; }


}

public class Dept
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int dId { get; set; }
[Required]
public string dName { get; set; }
public Corporation corporation { get; set; }
}

现在我要更新一个dept对象,但dept对象中的Corporation与dept来自不同的dbcontext,这时候就会报错:“更新条目时发生异常”

请问高人如何解决?
[解决办法]
用Attach更新试一下.
[解决办法]

引用:
用Attach更新试一下.


换了Attach方法后更新,数据没变。。。。
[解决办法]
更新数据时,两个对象来自不同的DBCONTEXT的问题可以解决,但又有新的问题,我现在更新DEPT对象时,同时更新了DEPT对象中的Corporation,但Corporation的值没有更新成功,也没有报错,是虾米回事?
[解决办法]
哎,晕死。这两天一直在研究这个EF 和 DBCONTEXT对象,越来越觉得很烂,当然也许是我的技术太烂,我想更多是后者吧。

希望有研究明白的人告诉我一下,当我要更新或添加一个对象时,这个对象关联的外(主)键对象与当前对象不是来自同一个DBCONTEXT,应该如何操作?
难道必须在实体中去掉这种关联关系,使用ID来标识,然后在程序中进行管理吗?那这样的话,我用EF干嘛?难道只是省去了维护数据库的过程?
[解决办法]
引用:
哎,晕死。这两天一直在研究这个EF 和 DBCONTEXT对象,越来越觉得很烂,当然也许是我的技术太烂,我想更多是后者吧。

希望有研究明白的人告诉我一下,当我要更新或添加一个对象时,这个对象关联的外(主)键对象与当前对象不是来自同一个DBCONTEXT,应该如何操作?
难道必须在实体中去掉这种关联关系,使用ID来标识,然后在程序中进行管理吗?那这样的话,我用EF干嘛?难道只是省去了维护数……

能否将两个DataContext对象放到一个事务当中来处理,你可以尝试一下。
[解决办法]
db.tmodel.Attach(model);
db.Entry<tmodel>(model).State = System.Data.EntityState.Modified;
db.SaveChanges();
前台页面传回一个model,先附加后设置Modified,这步一定要,我也搞了很久,网上的都说不清楚

读书人网 >.NET

热点推荐