我为有问题的基本窗口编写了一个通用存储库。更具体地说,有一个名为 Unit 的小 poco 类,如下所示:
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();
}
在添加新记录之前,从 db 中获取最大 id 并将其放置在 IdTextBox 中,然后调用基本形式的 add 方法,该方法调用上述基本存储库的 Add 方法。这是问题所在,我收到此错误,“属性'Id'是对象关键信息的一部分,无法修改。” 还有一个映射器类将每个属性映射到其相应的控件,该控件可以正常工作。我的问题是什么?
提前致谢。