执行以下C#PetaPoco代码时:
var p = db.Fetch<Person>("WHERE (firstname=@0 or lastname=@0)", "John");
甚至
var p = db.Fetch<Person>("WHERE (firstname=@name or lastname=@name)"
, new { name = "John" });
生成的SQL是:
exec sp_executesql N'
Select * from Person
WHERE (firstname=@0 or lastname=@1)'
,N'@0 nvarchar(4000)
, @1 nvarchar(4000)'
, @0=N'John'
, @1=N'John'
当然这是一个简化的例子,但为什么它可以重用同一个(@ 0)时产生多个sql参数(@ 0和@ 1)?
有没有办法强迫PetaPoco重用命名参数?