我即将着手重写 .NET 3.5sp1 中的 VB6 应用程序。VB6 应用程序编写得非常好,数据层完全基于存储过程。我想使用像 Linq2SQL/Entity Framework/NHibernate/SubSonic 这样的自动化工具。诚然,除了一次性项目,我没有在任何其他项目中使用过这些工具。
我担心所有这些选择可能遇到的潜在问题是速度。例如,现在要检索单行(或整个列表),我使用以下存储过程:
ALTER PROCEDURE [dbo].[lst_Customers]
@intID INT = NULL
,@chvName VARCHAR(100) = NULL
AS
SELECT Customer_id, Name
FROM dbo.Customer
WHERE (@intID IS NULL OR @intID = Customer_id)
AND (@chvName IS NULL OR Name like ('%' + @chvName + '%'))
ORDER BY name
要在 Linq2SQL/Entity Framework/NHibernate/SubSonic 中检索单行,这些解决方案是否必须将整个列表带到客户端并找到我需要的行?
那么,对于大数据域的应用,数据访问策略的共识是什么呢?