C# 如果一个用户正在跟踪另一个用户,则Linq表达式签入

C# 如果一个用户正在跟踪另一个用户,则Linq表达式签入,c#,linq,C#,Linq,我有一个存储追随者和追随者的表格。这些都是基于他们拥有的guid 在我想建立这种关系之前,我想检查一下这个人是否已经在跟踪这个人了 编辑 bool userExist=\u databaseEntities.Users.Count(e=>e.UserName==followerName)>0 if(userExist) { var user1 = _databaseEntities.Users.FirstOrDefault(y =>

我有一个存储追随者和追随者的表格。这些都是基于他们拥有的guid

在我想建立这种关系之前,我想检查一下这个人是否已经在跟踪这个人了

编辑

bool userExist=\u databaseEntities.Users.Count(e=>e.UserName==followerName)>0

        if(userExist)
        {
            var user1 = _databaseEntities.Users.FirstOrDefault(y => (y.UserName == username));
            var user2 = _databaseEntities.Users.FirstOrDefault(z => (z.UserName == followerName));
所以我得到两个用户,检查他们是否在那里,然后检查他们的用户名是否在形成关系的追随者表中

所以我有了这个
\u db.Followers.Count(c=>(c.UserId==user1.UserId&&c.FollowerId==user2.UserId)<0)

但即使存在关系,它也总是为0


我怎样才能做到这一点呢?

如果我理解正确,您有这样一张表:

 |  UserId  |  FollowerId  |
 |----------|--------------|
 |  Homer   |  Marge       |
 |  Homer   |  Lisa        |
 |  Marge   |  Homer       |
 |  Marge   |  Bart        |
 |  Bart    |              |
 |  Lisa    |  Bart        |
 |----------|--------------|
    public bool CanFollow(User followee)
    {
        return !Followee.Any(x => x.UserId == followee.UserId);
    }
并且相关的用户类应该至少包含UserId的string属性和用户集合(用户正在跟踪的用户) 因此,您可以在用户内部使用如下方法:

 |  UserId  |  FollowerId  |
 |----------|--------------|
 |  Homer   |  Marge       |
 |  Homer   |  Lisa        |
 |  Marge   |  Homer       |
 |  Marge   |  Bart        |
 |  Bart    |              |
 |  Lisa    |  Bart        |
 |----------|--------------|
    public bool CanFollow(User followee)
    {
        return !Followee.Any(x => x.UserId == followee.UserId);
    }
它更简单,更符合逻辑,你只需像那样使用它

User homer = _db.Followers.Where(x => x.UserId == "Homer").FirstOrDefault();
User marge = _db.Followers.Where(x => x.UserId == "Marge").FirstOrDefault();

// can Homer follow Marge?
homer.CanFollow(marge);

为什么您要将
bool
0
兼容?您的代码:
(…&&&&&…)<0
为了更清楚一点,将
计数
<0
进行比较将始终为
:)@NikolayKostov good point。你可以改变计数我已经试过了!任何,但它给了我真实的所有时间,即使我使用相同类型的用户
bool notRelation=_db.Followers.Any(c=>(c.UserId==user1.UserId&&c.FollowerId==user2.UserId))