1

我已经为我的基本窗口写了一个通用的存储库,它有问题。 让更具体,有一个名为单位有点POCO类如下:实体框架4.1插入错误

public class Unit : BaseEntity 
    { 
     public string Name { get; set; } 

     private ICollection<Good> _goods; 
     public virtual ICollection<Good> Goods 
     { 
      get 
      { 
       if(_goods==null) 
       { 
        return new List<Good>(); 
       } 
       return _goods; 
      } 
      set { _goods = value; } 
     } 
    } 

这是从基实体类继承的:

public class BaseEntity 
    { 

     public int Id { get; set; } 
     public override string ToString() 
     { 
      return Id.ToString(); 
     } 

    } 

,这是通用的存储库的我添加栏目类:

public void Add(TEntity entity) 
     { 
      if (entity == null) return; 
      if (Context.Entry(entity).State == EntityState.Detached) 
      { 
       Context.Set<TEntity>().Attach(entity); 
      } 
      Context.Set<TEntity>().Add(entity); 
      Context.SaveChanges(); 

     } 

前添加一个新的记录,最大的id是从数据库中取出,并放置在IdTextBox,并将它们添加基本形式的方法被调用它调用aforementi oned添加基础仓库的方法。这里是问题,我得到这个错误,“属性'Id'是对象的关键信息的一部分,不能修改。” 还有一个映射器类,它将每个属性映射到其相应的控件,它的工作很好。 我的问题是什么?

在此先感谢。

回答

0

我发现这个问题是由于自动检测变化的可变性而导致的。