Zil*_*ael 14 c# nhibernate entity-framework asp.net-mvc-5
我正在构建应该经常与数据库通信的大型Web应用程序.我想知道我应该使用什么库来进行NHibernate或Entity Framework 6的通信?
这是我的应用程序规范:
LazyLoad
?UserStore
.重要的事情:
作为使用NHibernate多年的人,我可能不是帮助您在EF或NHibernate之间进行选择的合适人选,但这些是我多年来学到的一些一般建议:
- 控制:我的意思是选择一个ORM,让你控制其功能的每个方面.幸运的是,NHibernate就是其中之一.您可以调用SP和其他数据库对象并将其结果映射到您的对象.您可以编写拦截器来拦截NHibernate功能等等.
- 从一开始就避免一般的ORM问题:其中一个(对性能有很大影响)是SELECT N + 1.
- 使用特定的分析器来查看您的ORM是如何工作的:我认为这对于我们能够看到ORM如何工作以及后面实际运行的查询非常重要.
- 尽可能使用缓存:我不知道EF,但Nhibernate有一个二级缓存机制,可以用来缓存内存中经常读取和静态的数据,以获得更好的性能
- 制定负载测试计划并对应用程序进行压力测试:无论您选择哪种ORM,都有时候应该提高应用程序的性能.我认为最好的方法是查看应用程序如何大规模工作是以某种方式模拟它并尝试调整它,使其工作在最佳状态.
- 制定计划B:ORM旨在帮助我们解决在表格中存储数据并将其用作我们应用程序中的对象的难题.因此,他们正在为我们做一些额外的事情,并且它们比使用表格格式的数据更慢因此,有时候在我们的应用程序中使用普通的表格格式而不是将其转换为对象会更好(例如,显示一个信息列表)
PS这可能是偏离主题但您是否考虑使用NoSql数据库而不是关系数据库?
归档时间: |
|
查看次数: |
23052 次 |
最近记录: |