今天特意想试一下linq是否有防注的功能。只做了'单引号的测试,linq会把'转成''就是把一个单引号转成两个单引号,这样来防止拼接时出错。
我写的linq是
t="dddd and '1'=''1";
var l = (from m in new DataClasses1DataContext().MemberAccount where m.UserKey==t select m).ToList();
最后生成的sql
exec sp_executesql N'SELECT [t0].[Id], [t0].[UserKey], [t0].[UserPwd]
FROM [dbo].[MemberAccount] AS [t0]
WHERE [t0].[UserKey] = @p0',N'@p0 varchar(8000)',@p0='dddd and ''1''=''''1'