C# 如何从EF获取DTO的id?

C# 如何从EF获取DTO的id?,c#,entity-framework,service,repository,dto,C#,Entity Framework,Service,Repository,Dto,当存储库返回DTO对象时,我使用带有服务->存储库的体系结构 在普通代码存储库中,添加看起来像: _context.Set<ModelType>().Add(model); return model; 但是我们仍然在存储库中保存更改“存储库不应该在存储库中保存更改”为什么不呢?存储库模式就像一个集合。List.Add(item)List.Delete(item2)-因此现在集合中有一个添加的项和一个删除的项,但只有在集合(内存)中,如果要保存此状态,我们需要调用类似Complete

当存储库返回DTO对象时,我使用带有服务->存储库的体系结构

在普通代码存储库中,添加看起来像:

_context.Set<ModelType>().Add(model);
return model;

但是我们仍然在存储库中保存更改

“存储库不应该在存储库中保存更改”为什么不呢?存储库模式就像一个集合。List.Add(item)List.Delete(item2)-因此现在集合中有一个添加的项和一个删除的项,但只有在集合(内存)中,如果要保存此状态,我们需要调用类似Complete()的方法,并且一些系统接受集合并将此状态保存到某个存储中。我总是这样想。这是更为坚实的单一责任原则,我们可以进行交易。此外,如果存储库使用了某些第三方库等。
var model = Mapper.Map<ModelType>(dtoModel);
_context.Set<ModelType>().Add(model);
_context.SaveChanges();
return model.MapTo<DtoModelType>();
Add(Model model, bool saveChanges)