我不知道该怎么说,但我说。我正在使用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(
!
),只要它有意义,这只是个人风格的问题。