好的还是在我的Asp.net MVC应用程序中做一些SqlCacheDependecy
我从Microsoft得到这段代码来缓存LINQtoSQL,基本上它的作用是从LINQ查询中获取SqlCommand文本并通过System.Data.SqlClient.SqlCommand执行它,而SqlDependecy需要...
然而,这有一个小问题,那就是无论何时在LINQ中执行where子句,生成的SQL都是这样的
SELECT [t0].[MemberID], [t0].[Aspnetusername], [t0].[Aspnetpassword], [t0].[EmailAddr], [t0].[DateCreated], [t0].[Location], [t0].[DaimokuGoal], [t0].[PreviewImageID], [t0].[LastDaimoku] AS [LastDaimoku], [t0].[LastNotefied] AS [LastNotefied], [t0].[LastActivityDate] AS [LastActivityDate], [t0].[IsActivated]
FROM [dbo].[Members] AS [t0]
INNER JOIN [dbo].[MemberStats] AS [t1] ON [t0].[MemberID] = [t1].[MemberID]
WHERE [t1].[TotalDeterminations] > @p0
注意where [t1]。[TotalDeterminations]> @ p0,SqlCommand对我大吼大叫,因为它要我声明一个@ p0的标量变量......显然我不能
那么,提供此代码以缓存Linq查询的Microsoft如何让人们使用where子句?任何人对此都有任何想法吗?
编辑再加上SQL如何知道什么是@p无论如何只是执行LINQ就像上面的查询一样,无论数据库是什么,都会传递给它?
答案 0 :(得分:1)
@something
是一个SQL参数,.NET通过添加到SqlCommand对象的SqlParameter集合来处理。
您可以使用任何名称创建参数,Linq to SQL只生成名为p#
的参数,其中#
表示其在集合上的位置。
答案 1 :(得分:0)
为什么不能在将SqlParameter对象添加到SqlDependecy之前将其添加到SqlCommand对象的Parameters集合中?