LinqToSQL设计查询/担忧

本文关键字:担忧 查询 LinqToSQL | 更新日期: 2023-09-27 18:12:33

不知道有没有人能给我指个方向。我最近开始玩LinqToSQL,喜欢强类型数据对象等。

我只是在努力理解对数据库性能等的影响。例如,假设我正在开发一个简单的用户配置文件页面。该页面显示了用户的基本信息,他们最近活动的一些信息,以及未读通知列表。

如果我正在为这个页面开发一个存储过程,我可以创建一个单独的SP,它返回多个数据表,涵盖所有需要的信息——从而产生一个单独的db调用。

然而,使用LinqToSQL,这可能会导致许多调用-一个用于用户信息,至少一个用于活动,至少一个用于通知,如果我想要进一步的通知信息,这可能会导致进一步的调用-多个db调用。

我应该担心使用这种设计模式导致的db调用的数量吗?例如,多个db握手等是否会降低我的db等?

我很感激你对这个问题的看法!

谢谢大卫。

LinqToSQL设计查询/担忧

如果需要的话,LINQ to SQL可以使用来自存储过程的多个结果。不幸的是,设计器在正确映射它们方面存在问题,因此您可能需要手动创建映射。见http://www.thinqlinq.com/Default/Using-LINQ-to-SQL-to-return-Multiple-Results.aspx。

如果你知道每个父记录都需要子记录,你可以配置LINQ to SQL来急切地加载子记录。使用DataLoadOptions和. loadwith来配置它。

您还可以在LINQ查询的Select子句中投影具有多个子集合的对象图,以减少您所做的DB命中次数。

最终,您需要检查许多选项,以确定哪条路由最适合您的情况。

从性能的角度来看是最差的吗?是的,应该是这样。多次往返通常比一次往返更糟糕。

真正的问题是,do you mind?您的应用程序是否会接收到足够多的访问,以保证存储过程的复杂性?或者比起原始性能,您更看重未来修改的简单性?

在任何情况下,如果需要性能,可以创建存储过程并将其映射到上下文。这将给您一个单独的调用,但是将数据作为对象返回这里有一篇文章解释了这个选项:linq-to-sql-returning-multiple-result-sets