在LINQ中使用两个条件获取单个记录

时间:2011-05-03 15:06:11

标签: c# asp.net linq linq-to-sql

我有一个表,我正在使用LINQ更新单个记录,但我获取该记录的条件是2.我的条件是这样的:

   Test p = dt.Tests.Single(c => c.ID == getID);

但我想补充另一个条件:

Cust_ID == 1.这样的事情:

  Test p = dt.Tests.Single(c => c.ID == getID && t=> t.Cust_ID == 1);

但我无法使用LINQ来掌握这种情况。有任何帮助吗?

5 个答案:

答案 0 :(得分:5)

您需要将逻辑运算符放在lambda中:

dt.Tests.Single(c => (c.ID == getID && c.Cust_ID == 1) )

不需要内括号;我添加它们以澄清它是一个lambda。

答案 1 :(得分:4)

在lambda表达式中,您应该使用相同的别名

Test p = dt.Tests.Single(c => c.ID == getID && c.Cust_ID == 1);

答案 2 :(得分:3)

您尝试为单个参数使用两个单独的lambda表达式。我怀疑你正在寻找:

Test p = dt.Tests.Single(c => c.ID == getID && c.Cust_ID == 1);

如果情况并非如此,请向我们提供有关您在条件下尝试测试的内容的更多详细信息。

答案 3 :(得分:1)

 Test p = dt.Tests.Single(c => c.ID == getID && с.Cust_ID == 1);

答案 4 :(得分:1)

你几乎就在那里,你的语法错误了:

dt.Tests.Single(c => c.ID == getId && c.Cust_ID == 1);

您只需使用相同的符号并组合条件即可。