我可以写程序
int a = 3;
int b = 4;
Console.WriteLine(a % b);
Run Code Online (Sandbox Code Playgroud)
我得到的答案是3. 3 mod 4 = 3怎么样?
我无法弄清楚这是如何以这种方式计算的.
在C#应用程序中,我创建了由SQL事件探查器捕获的以下参数化动态sql语句:
执行此语句不会返回任何结果:
exec sp_executesql N'SELECT IDWebFormAnswer FROM WebFormAnswers WHERE IDWebform = 55 AND IDWebFormQuestion = 478 AND (ANSWER = ''@answer0'')', N'@answer0 nvarchar(2)', @answer0=N'XL'
Run Code Online (Sandbox Code Playgroud)
但是,如果我在下面简单地用XL替换@ answer0,我会返回4行.
exec sp_executesql N'SELECT IDWebFormAnswer FROM WebFormAnswers WHERE IDWebform = 55 AND IDWebFormQuestion = 478 AND (ANSWER = ''XL'')', N'@answer0 nvarchar(2)', @answer0=N'XL'
Run Code Online (Sandbox Code Playgroud)
我不明白为什么会这样?我构建查询错了吗?
我正在玩表达树和各种Linq语法.我写了以下内容:
using (NorthwindDataContext DB = new NorthwindDataContext())
{
DataLoadOptions dlo = new DataLoadOptions();
// Version 1
dlo.AssociateWith<Customer>(c => c.Orders.Where(o => o.OrderID < 10700).Select(o => o));
// Version 2
dlo.AssociateWith<Customer>(c => from o in c.Orders
where o.OrderID < 10700
select o);
}
Run Code Online (Sandbox Code Playgroud)
版本1方法返回错误,指出"子查询中不支持运算符'选择'."
虽然版本2运行得很好.根据我的理解,我写的是完全相同的东西,但一个是"点"符号语法,另一个是查询表达式语法.
我在这里错过了什么吗?为什么错误在一个而不是另一个"if"它们实际上是同一个查询?