C# 多条记录:逐个或同时创建业务对象?

C# 多条记录:逐个或同时创建业务对象?,c#,database,mvvm,C#,Database,Mvvm,我有一个包含大约10000条记录的表(加上11个表中的详细数据)。我想以可浏览的形式显示数据(第一个、上一个和下一个、最后一个按钮) 我考虑检索所有记录,将数据放入业务对象集合,并将表单绑定到集合。想到这一点,我想到这可能需要一段时间,可能会导致大量的内存被使用 那么,也许我应该检索第一条记录,并在请求时获取下一条记录?你认为如何? < P>如果数据频繁使用,但不经常改变,可以考虑将其缓存在应用程序级别上。如果在表单级别检索数据,在速度和内存消耗之间可能有一个很好的折衷办法,即获取11条记录(当

我有一个包含大约10000条记录的表(加上11个表中的详细数据)。我想以可浏览的形式显示数据(第一个、上一个和下一个、最后一个按钮)

我考虑检索所有记录,将数据放入业务对象集合,并将表单绑定到集合。想到这一点,我想到这可能需要一段时间,可能会导致大量的内存被使用


那么,也许我应该检索第一条记录,并在请求时获取下一条记录?你认为如何?

< P>如果数据频繁使用,但不经常改变,可以考虑将其缓存在应用程序级别上。如果在表单级别检索数据,在速度和内存消耗之间可能有一个很好的折衷办法,即获取11条记录(当前记录、5条上一条记录和5条下一条记录),如果用户超过检索到的记录,则再次获取下一条记录,等等。

如果您没有使用像nHibernate或iBatis这样的OR/M,现在让我建议。我使用nHibernate,但我听说iBatis很不错。它们内置了批处理和延迟加载,并且是可配置的。另外,下次出现类似情况时,由于预先建立了灵活的数据访问层,您将在几分钟内拥有此功能


如果您不打算使用OR/M,我建议在性能成为问题之前逐个抓取—为什么要预先将事情复杂化?如果性能成为问题,那么考虑批处理和缓存。

每个人都建议这么做。我一直在逃避,因为这意味着丢掉几个月的工作……可以理解。我学到的一件事是在考虑是放弃工作还是保留工作时对ROI进行评估。有时,丢掉“几个月”的工作可以在长期的开发和维护中节省更多的时间。需要考虑的一件事是:未来的“新开发人员”是否会更倾向于了解或学习一个记录良好且被广泛采用的or/M或您的自定义数据访问层?祝你好运。我已经做了一个决定,把我的东西扔掉了。在迈出这样一大步之前,我要做的一件事就是学习新技术。我敢说,大多数与我共事过的人都会跳上“奶酪上的老鼠”这样的工具,但他们永远不会阅读文档和学习技术。我建议在使用新技术之前先阅读文档。一杯好的奥乔杯和一两个小时的认真阅读都会带来回报。回顾过去,我不得不说,搬到恩希伯内特绝对是一个正确的决定。尽管如此,我还是感谢你的建议!我学会了很多编写我扔掉的代码,所以这并不完全是为了鸟。事实上,我的项目70%是学习,30%是真正的商业(我是C#的新手,以前只做过VBA)