检查两列中是否存在两个值?

时间:2015-04-03 20:20:54

标签: c# sql-server linq visual-studio

我在数据库中有一个表;它有三列。 第一个(Friends_Id)是(int)主键,其他是(User_1& User_2)nvarchar(50)。

每个(User_1和User_2)出现一次。
(User_1& User_2)中值的顺序并不重要。这意味着价值观" A"和" B"可以通过以下任一方式放入此表:

------------------------------
| Friends_Id | User_1| User_2 |
------------------------------
|    37      |   A   |   B    |
------------------------------

或者:

------------------------------
| Friends_Id | User_1| User_2 |
------------------------------
|    37      |   B   |   A    |
------------------------------

当然" A"可以出现很多次,但值不是" B"。
对于" B"同样如此。它可以使用" A"。

以外的值显示

问题是:如何检查(" A"," B")或(" B", " A")在C#中使用LINQ实体 查询必须回答以下问题:是否出现" A"和" B"按任意顺序(" A"," B")或(" B"," A")列(User_1,User_2)

1 个答案:

答案 0 :(得分:0)

这样的事情可能有用:

int count = (from row in table
where (row.user_1 == "A" && row.user_2 == "B") || (row.user_1 == "B" && row.user_2 == "A"))
.Count();

if(count > 0)
{
    // your code
}

或更好的方法是使用Any()

if(context.table.Any(r => (r.User_1 == "A" && r.User_2 == "B") || (r.User_1 == "B" && r.User_2 == "A")))
{
    // your code
}