[我们正在使用ActiveRecord。]
在运行Sql Server Profiler时,我们注意到一个简单的“保存”之前有一些很好的数据库活动。我们发现SubSonic核心遍历所有属性,并在实际执行保存之前将其值保存在字典中。
我们通常在包含一些需要数据库活动的属性的部分类中“扩展”我们的数据对象。这是额外活动正在发生的地方,而且据我们所知,这是不必要的。
我们更改了脚本从每个数据库列创建属性的位置,以便它现在使用[LocalData]装饰这些属性。然后,如果缺少此属性,我们更改了核心(Extensions.Objects.ToDictionary)以跳过GetValue。
在一个包含大量保存类型数据库活动的测试中,我们看到经过的时间从21秒减少到2秒,数据库活动减少了大约三分之二。
这有两个问题:1)是否有我们错过的功能会使我们的更改变得不必要; 2)如果没有,您是否知道其他一些与ToDictionary相关的流程现在会破坏?
谢谢!
答案 0 :(得分:0)
[SubSonicIgnore]属性是否实现了相同的目标?