如何处理@p LINQtoSQL参数?什么是@p无论如何?

时间:2008-10-29 02:36:48

标签: sql-server asp.net-mvc linq-to-sql

好的还是在我的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就像上面的查询一样,无论数据库是什么,都会传递给它?

2 个答案:

答案 0 :(得分:1)

@something是一个SQL参数,.NET通过添加到SqlCommand对象的SqlParameter集合来处理。

您可以使用任何名称创建参数,Linq to SQL只生成名为p#的参数,其中#表示其在集合上的位置。

答案 1 :(得分:0)

为什么不能在将SqlParameter对象添加到SqlDependecy之前将其添加到SqlCommand对象的Parameters集合中?

相关问题