【发布时间】:2012-03-29 12:18:03
【问题描述】:
我正在尝试在以下 lambda 表达式中使用逻辑运算符
int count = dataContext.Users.Count(u => u.ID == 1 && u.Name == "name");
下面是完整的功能
private void Login(int id, string password)
{
MyDataContext dataContext = new MyDataContext();
int count = dataContext.Users.Count(u => u.ID == 1 && u.Name == "name");
}
我使用的是 Microsoft SQL Server 2008 Express 2008 Edition,用户表看起来像
ID int autogenerated
Name string
但 Visual Studio 2010 给出以下设计时错误“无效的表达式术语”。知道我可能做错了什么吗?
我收到以下错误消息
- 错误 2 ) 预期 ...\FormAdd.cs 105 123
- 错误 3 ;预期 ...\FormAdd.cs 105 126
- 错误 5 ;预期 ...\FormAdd.cs 105 158
- 错误 7 ;预期 ...\FormAdd.cs 105 202
- 错误 4 无效的表达式术语 ')' ...\FormAdd.cs 105 158
- 错误 6 无效的表达式术语 ')' ...\FormAdd.cs 105 202
- 错误 1 无效的表达式术语 '=>' ...\FormAdd.cs 105 123
【问题讨论】:
-
Lambda 对我来说看起来不错,你确定错误在这一行吗?
-
@Magrangs:否:msdn.microsoft.com/en-us/library/bb535181.aspx
-
在 linqpad 中输入
new[] { new { ID=1, Name="name"}}.Count(u => u.ID == 1 && u.Name == "name")对我有用。你的 ID/Name 类有错字吗? -
"知道我可能做错了什么吗?"是的,你没有告诉我们一切。给我们完整的信息。正如所写,它看起来不错。因此,我得出结论,您遗漏了一条重要信息。
-
您在这些图片中输入的内容与您在问题中输入的内容不同。您在问题中输入的内容是正确的。如果您想要两个条件,请使用
u => u.A == desiredA && u.B == desiredB而不是u => u.A == desiredA && u => u.B == desiredB。