zoukankan      html  css  js  c++  java
  • 一个实体对象不能由多个 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, 更新数据的时候就不需要多个实体对象。总之就是只能更新一个实体对象。
    注:代码只是部分。

      

  • 相关阅读:
    bzoj 1093: [ZJOI2007]最大半连通子图
    bzoj 1266 1266: [AHOI2006]上学路线route
    poj 2104 K-th Number
    洛谷 P3313 [SDOI2014]旅行
    cogs 306. [SGOI] 糊涂的记者
    cogs 1164. 跑步
    洛谷 1821: [JSOI2010]Group 部落划分 Group
    洛谷 U3357 C2-走楼梯
    洛谷 P3014 [USACO11FEB]牛线Cow Line
    洛谷 P2982 [USACO10FEB]慢下来Slowing down
  • 原文地址:https://www.cnblogs.com/macil/p/2223267.html
Copyright © 2011-2022 走看看