我已经使用 SubSonic 2 大约 5 年了,并且很喜欢它。然而,在过去的六个月里,我一直在考虑迁移到 SubSonic 3 或类似的 ORM 工具。由于我的公司使用了大量 Telerik 的工具,我想我会尝试 OpenAccess。配置好之后,我想我会尝试一个非常基本的任务,即从我们的用户表(约 30 条记录)中加载一个带有信息的 RadGrid。
因此,在 Grid 的 OnNeedDataSource 事件中,我有以下内容:
var start = System.Environment.TickCount;
context = new EntitiesModel();
rgUsers.DataSource = (from u in context.Users select u);
var stop = System.Environment.TickCount;
var elapsed = stop - start;
litTelerik.Text = string.Format("This process took <b>{0}</b> milliseconds", elapsed);
在构建该页面并运行该页面之后,它吐出它花了 1607 毫秒。但是,刷新页面后它会返回 0 秒。(为什么?)
然后我输入了 SubSonic 代码:
var start = System.Environment.TickCount;
rgUsers.DataSource = new UserCollection().Load();
var stop = System.Environment.TickCount;
var elapsed = stop - start;
litTelerik.Text = string.Format("This process took <b>{0}</b> milliseconds", elapsed);
我第一次运行代码,它说它花了 171 毫秒。刷新页面后,它报告它需要 60-70ms。
所以,我的问题是:为什么 OA 在第一次访问时加载需要相当长的时间,但在每次页面刷新时加载零秒?而 SubSonic 在第一次访问时要快得多,但每次页面刷新大约需要 65 毫秒?
如果这是一个“基本”问题,或者我没有充分测试性能,我深表歉意。如果有任何方法可以改进此方法,我将不胜感激任何建议。
谢谢,安德鲁