一个实体对象不能由多个 IEntityChangeTracker 实例引用

 

这些天都在研究asp.net mvc 由于.net 基础薄弱完全是个菜鸟,遇到了很多麻烦,在使用asp.net mvc +ef code first添加记录遇到一个错误:一个实体对象不能由多个 IEntityChangeTracker 实例引用,通过百度谷歌搜索,本人的解决方法是:

public partial class Category
    {

        public int ID { get; set; }
        [Display(Name = "栏目名称")]
        [StringLength(50), Required(ErrorMessage = "栏目名称不能为空!")]
        public string CategoryName { get; set; }
        public virtual WebModel WebModel { get; set; }
    }
public partial class WebModel
    {
        
        public int ID { get; set; }
        [Display(Name = "模型名称"), Required(ErrorMessage = "模型名称不能为空"), StringLength(20, ErrorMessage = "模型名称不能太长")]
        public string ModelName { get; set; }
        [Display(Name = "模型代码")]
        [Required(ErrorMessage = "模型代码不能为空")]
        [RegularExpression("^[a-zA-Z][\\w]{3,15}",ErrorMessage="只能是字母数字和下划线组合,并且长度在3-15")]
        [StringLength(15)]
        public string CodeName { get; set; }

        public virtual ICollection<Category> Categories { get; set; }

    }
webmodel _M= m_dal.getbyid(id)
Category category=new Category{webmodel=_m,....}
dbset.Attach(category)//添加这句就没有错了
dbset.Add(category)  //这里发生错误

 错误原因:由于每一个实体对象都生成一个IEntityChangeTracker,所以产生错误,Attach是把实体对象附加到 dbset, 更新数据的时候就不需要多个实体对象。总之就是只能更新一个实体对象。
注:代码只是部分。

  

转载于:https://www.cnblogs.com/macil/archive/2011/10/25/2223267.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值