我不知道该怎么说,但我说。我正在使用linq为服务器编写服务层。我已经安装了数据库,并使用实体层继承了其中的类(将替换为wcf层,以便正确使用json(这是本项目的软件需求)。我正在编写一个名为“joinCalendar”的方法(应用程序的主要部分),其中我要证明用户可以有效地加入日历。
这是斯塔特的密码

public bool JoinCalendar(int famID, string email)
{
 using (FamilySchedulerEntities db = new FamilySchedulerEntities())
 {
   var checkUser = (from u in db.Users
                    where u.familyID.Equals(famID) && !u.emailAddress.Equals(email, StringComparison.InvariantCultureIgnoreCase)
                    select u).FirstOrDefault();

  if( checkuser != null){ return false}
  else
  {
    //stuff
    return true;
  }

此方法的目的是获取用户尝试加入的日历的familyID(用户组的标识字段)和用户的电子邮件地址(每个用户的唯一ID)。我想从那个查询中执行两个不同的检查。
首先:我想检查familyID是否有效(即确保familyID是存储在数据库中的实际值)
其次:检查用户的电子邮件地址是否与注册到任何家庭的用户不匹配
第三:我可以用“!”LINQ查询中的操作员或IT不良实践/礼仪
谨致问候,
西蒙·约翰逊
注:只使用LINQ(实际上是编写数据库应用程序)不到一周,所以请保持这个新手友好。理想情况下,我需要一个超级elegenat解决方案,因为连接到此服务器的客户端可能使用蜂窝(即不是wifi)连接,我需要将数据传输保持在绝对最低限度。如果最好的解决方案是困难的,那么请慢慢解释

最佳答案

你的两个要求可以表述为:

bool familyExists = db.Users.Any(u => u.familyID == famID);
bool emailTakenAlready = db.Users.Any(u => u.emailAddress == email);

这些似乎是独立的需求,因此您可以对它们进行单独的查询。
当然,在linq查询中可以使用逻辑not(!),只要它有意义,这只是个人风格的问题。

10-08 08:50
查看更多