Wpf 提高SQL Compact Edition的读取速度

Wpf 提高SQL Compact Edition的读取速度,wpf,sql-server,c#-4.0,Wpf,Sql Server,C# 4.0,我有一个wpf应用程序,它将项目保存在SQL Server Compact Edition文件中。 此文件是从组成数据上下文的类列表中动态创建的。 当我遇到以下场景时,我正在经历缓慢的加载时间 正在尝试加载包含ItemB列表的ItemA列表 在我的datacontext中,它链接到表1,一个从表1到表2和表2的链接表 为了将其放入我的应用程序中,我从Sql Server加载了所有Table1行。 对于返回的每个Table1行,我将所有信息添加到新的ItemA中。然后,我查找通过链接表链接到当前T

我有一个wpf应用程序,它将项目保存在SQL Server Compact Edition文件中。 此文件是从组成数据上下文的类列表中动态创建的。 当我遇到以下场景时,我正在经历缓慢的加载时间

正在尝试加载包含ItemB列表的ItemA列表

在我的datacontext中,它链接到表1,一个从表1到表2和表2的链接表

为了将其放入我的应用程序中,我从Sql Server加载了所有Table1行。 对于返回的每个Table1行,我将所有信息添加到新的ItemA中。然后,我查找通过链接表链接到当前Table1行的任何Table2行。对于返回的所有Table2行,我将它们转换为ItemB的列表,并将它们添加到ItemA

我最终得到一个ItemA列表,每个对象包含一个ItemB列表。问题是我对数据库进行了多次调用,这会在达到几百项时推高加载时间。 有没有更好的方法来避免多次呼叫?
如果不是,那么加快应用程序速度的最佳方法是什么?我是否应该缓存ItemA,如果是这样的话,最好的方法是什么?

答案不多,但我相信sql ce对于上面提到的场景来说不够快。因此,我将我的备份存储更改为内存中的列表,并按照上面的注释将其序列化为文件。
经过一个月的测试,我没有遇到任何问题,并大大提高了我的应用程序的速度

由于目前还没有答案,而且我设法将应用程序的1分钟加载时间提高到毫秒的唯一方法是将所有对象二进制序列化到磁盘并加载回内存,因此我考虑完全抛弃SQL server CE。我希望最终将此应用程序移植到Windows 8 Metro,因为它不支持sql ce,这似乎是一个更令人信服的理由。-是否有人对我的序列化文件在开始变得不可行之前可以增长多大有什么建议,或者有任何其他原因说明这是一个坏主意?