Я использую ASP.NET MVC5, Entity Framework 6, внедрение зависимостей и единицу работы.
Возникла проблема при сохранении нового элемента в базе данных. Я не могу получить новый сгенерированный идентификатор только что вставленного элемента.
Ниже приведен пример моего кода, просто чтобы узнать больше о моей проблеме:
Вот мой сервис
public class UserService : IUserService
{
IUnitOfWork _unitOfWork;
IUserRepository _userRepository;
public UserService(IUnitOfWork unitOfWork, IUserRepository UserRepository)
{
_unitOfWork = unitOfWork;
_userRepository = UserRepository;
}
public int Create(UserDTO entity)
{
if(entity == null)
{
throw new ArgumentNullException("entity");
}
entity = _userRepository.Add(entity);
_unitOfWork.Commit();
return entity.UserID;
}
}
Вот мой репозиторий
public virtual TEntityDTO Add(TEntityDTO entity)
{
var item = Mapper.Map<TEntityDTO, TEntity>(entity);
var createItem = Mapper.Map<TEntity, TEntityDTO>(context.Set<TEntity>().Add(item));
return createItem;
}
Вот моя единица работы
public int Commit()
{
// Save changes with the default options
return _dbContext.SaveChanges();
}