我在MVC CORE中有一个应用程序,在这个应用程序中,我正在使用DTO / ViewModels。首先,我从数据库中获取并填充到viewModels / DTO中。 DTO更有用,因为我们可以用自己的方式自定义它,而不是Microsoft Entity Framework纯生成的poco类。我们可以放置数据注释,创建更多属性,并可以利用它们进行更多自定义。
但现在我面临来自这一层/ DTO / ViewModel的性能问题。
因为对于如此大的数据,c#循环会大大减慢我的应用程序。
不能/我不应该使用部分类并编写数据注释并在那里编写我们自己的属性。
它会出现什么问题?
答案 0 :(得分:4)
因为对于如此大的数据,c#循环会大大减慢我的应用程序
在查询中使用限制。我不知道你为什么一次需要1,000,000条记录。如果您需要1,000,000条记录进行分页。 不是你直接使用EF对象会给你带来性能的事实。
您可以使用EF对象中的部分类并添加新属性并添加注释等等,但我的建议是不要在整个应用程序中使用EF对象。 你松散抽象,低耦合,你的领域模型不应该意识到基础设施问题(EF)。模型应该关注模型。看看Bob叔叔,Clean Architecure https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html,了解一些见解。阅读后你弄明白了,为什么使用EF对象不是一个好主意。
这是一个非常广泛的话题。希望用我的5美分帮助你