我即将开发一个新应用程序,并正在考虑最佳实践
我已经阅读过有关ActiveRecords的内容,之前我已经使用过它,但我总是想要一些可以让更改更容易,更省时的东西。
使用有效记录和其他ORM : 我相信这些方法会加载数据库中的所有记录,有时我可能只需要一两个
如果我想要进行分页,我需要传递pageIndex和pageSize,如何在不加载所有数据的情况下执行此操作
就像我想要WHERE子句中的多个字段一样 我不会根据我的标准加载所有记录并过滤
我希望所有选择/过滤/排序都在数据库级别进行
添加静态方法来执行这些操作看起来就像我做错了一样
是否有优雅处理的ORM?
我希望能够最大限度地控制应用程序流,以便在必要时轻松进行优化。
注意:我仍在研究 DAO和其他方法,但我希望对Active Record提出意见,以防我仍然想要使用它
由于
答案 0 :(得分:1)
如果您使用的是C#3.5 +,我相信Linq
,IQueryable
和正确的数据服务层可以解决您的问题。
e.g。
var items = getAllItems(); // IQueyrable<Item>, from database
var paged = items.Skip(50).Take(10); // Database still not queried
paged.toList(); // Database return 10 items only
过滤和WHERE。与上述相同
大部分ORM都与Linq合作。例如。 NHibernate的
最大限度地控制应用程序流程。
您可能需要编写自己的自定义Linq提供程序,但请相信我,您不必这样做。