在我的应用程序中,我有一个如图所示的基本架构:
RepositoryMethods (DO) --> BusinessEngines (DTO) --> Controller (ViewModel)
我喜欢将所有Entity Framework / DbContext访问代码保存在一个位置。我的Repository方法都注入了DbContext,并且都是API样式而不是通用存储库:
Task<Post> GetAllPostsInCategory(int categoryId);
因此,当实体(域对象)转换为数据传输对象然后转换为视图模型时,实体框架是否仍然可以跟踪它们,还是应该始终在每个Repository方法中使用.AsNoTracking()
?在dot net core中,我认为这可以在全球范围内设置,我是否正确?
答案 0 :(得分:1)
如果您只是简单地从API返回实体,那么您的上下文永远不会有机会跟踪任何内容。
但是,如果您要更新或删除任何数据,最好将其保留在
上