Я написал общий репозиторий для моих базовых окон, с которыми возникли проблемы.
Давайте будем более конкретными, есть небольшой класс poco под названием Unit, как показано ниже:
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();
}
}
и это мой раздел Add универсального класса репозитория:
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();
}
перед добавлением новой записи, максимальный идентификатор выбирается из базы данных и помещается в IdTextBox, и вызывается метод добавления базовой формы, который вызывает вышеупомянутый метод добавления базового репозитория. вот проблема, я получаю эту ошибку: «Свойство Id является частью ключевой информации объекта и не может быть изменено».
есть также класс mapper, который отображает каждое свойство в соответствующий элемент управления, который прекрасно работает.
В чем моя проблема?
Заранее спасибо.