2011-12-07 26 views
1

好吧,我有一个LINQ to SQL系统在WCF服务上设置。我的应用程序包含对此服务的引用,它用于从SQL数据库收集数据。我使用由SQLMetal.exe生成的DataContext对象。LINQ to SQL中的新数据与本地缓存的数据相比较

我在我的DataContext对象,客户端和组中的两个实体的集合。每个客户端都包含一个字段,该字段说明它所属的组数(以逗号分隔的组ID列表)。

在应用程序中,我有客户的表。如果我选择一个并单击按钮,则第二个表格将显示客户端所属组的详细信息。

这里的问题:当我点击这个按钮,做我去的数据库中向各组的时候,或者我应该加载组应用程序启动时,并通过筛选那些?后者会更快,但我想要一个并发解决方案。第二个问题(我知道不应该有两个真的,但我只是意识到我可能会对此问题感到困惑):当我在DataContext对象的集合上运行LINQ查询时,是否获得最新数据库数据?

谢谢。

+0

我可以回复三个答案,或者我可以只回复一次。与我正在寻找的那种信息相关的三个很好的答案。多谢你们! – user738383

回答

1

关于第二个问题 - 是的,对LINQ每个查询,以SQL导致发出来的后盾数据库的SQL语句。并进一步澄清这是每次尝试枚举LINQ语句。我并不是要暗示每个LINQ语句都会立即发送到数据库,当然这不是。

上缓存与每次查询的第一部分是依赖于其它因素。有必要吗?意思是说,你试图纠正一个性能问题吗?在数据成为用户关注之前,数据能够承受多大的“陈旧”?这些都是您需要回到应用程序所有者决定的问题。

1

与大多数真实世界的性能问题一样......这取决于。最好的告诉方式是用你感觉正确的方式编写你的应用程序,然后如果性能是一个问题,那么应该相应地测量和改变。

是的,你会得到最新的数据库信息。

1

除非加载组需要大量时间,否则不要缓存。 不成熟的优化从来不是一个好主意。 只要记住,你可能想要并确保你的团体集合是很好的解耦,如果你必须相对简单,优化。