我在数据库中有一个表;它有三列。 第一个(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)
答案 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
}