[英]Automapper, Entity framework update database
我正在使用自动映射器和实体框架,这很好,为我节省了很多代码,但是在进行更新时,我遇到了问题。
我使用以下内容将实体附加到EF上下文,然后使用自动映射器更新元素,如果值未更新为默认值(IE字符串为null,int为0等),这很好。
var entity = new Car
{
CarId = carViewModel.CarId,
};
db.Cars.Attach(entity);
AutoMapper.Mapper.Map(carViewModel, entity);
db.SaveChanges();
自动映射器是否具有可以帮助解决此问题的功能,还是需要手动设置一些替代默认设置?
另一种选择是从数据库加载现有项目并进行更新,但我希望避免这种情况,因为我不需要这样做。
我认为问题实际上是实体框架不知道您的实体已更改。 代替使用db.Cars.Attach
,尝试设置实体状态:
var entity = new Car();
AutoMapper.Mapper.Map(carViewModel, entity);
db.Entry(entity).State = EntityState.Modified;
db.SaveChanges();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.