对于C#,实体框架和LINW,我希望有人能够在关于LINQ的代码中解释一些东西。我的程序中有一个方法从表中选择一个用户。该方法是:从包含LINQ语句/表达式的表中选择用户
public static cp_user SelectUser(string user, string passw)
{
try
{
cp_user entityUser = (from u in _db.cp_user
where u.username == user && u.password == passw
select u).FirstOrDefault();
return entityUser;
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
return null;
}
cp_user是对应于我在我的数据库中的表的类。而_db是一个保存对数据库实例的引用的字段。
在选择用户方法我明白,有类型cp_user的局部变量的创建,它是由该语句定义:
(from u in _db.cp_user
where u.username == user && u.password == passw
select u).FirstOrDefault();
林困惑的语句的第一部分。 “从_dp.cp_user中的u开始”。 到目前为止,我一直在使用MySQL,所以它很迷惑地看到这个“来自你”。在MySQL中,这个“u”是指一个表。但在Linq im混淆了它的功能。
尽管我大致了解了其余的声明,但方法中的用户名和密码参数必须与表中的数据相同。并且它会返回数据库对象。但是,在最后一部分“选择你”中再次感到困惑。
另一个问题我已经是在所谓的checkany另一种方法,它检查用户登录正确的是:
public static bool CheckAny(string user, string passw)
{
bool itIsAlredy = _db.cp_user.Any(u => u.username == user && u.password == passw);
return itIsAlredy;
}
我明白,在用户名和密码CheckAny methodtakes并创建一个布尔变量它可以根据语句返回true或false。这是我不了解的部分。
- 对于我这个语句 “(U => u.username ==用户& & u.password == PASSW);”看起来像这意味着方法参数中的用户名和密码必须存在于数据库中。但是有学校的人告诉我,这意味着用户名和密码必须正确对应;您不能拥有连接到其他用户名的密码。那么这个声明实际上说了些什么?而且我也不明白整个“u => u.username”。像这个你代表什么。它是特殊的linq语法,如果是这意味着什么?任何人都有链接解释这一点?
如果我有任何错误的陈述,请纠正我,如果我有新的编程,一般只在MySQL以前使用过。如果有人能回答我提出的三个问题,我将不胜感激。
由于在预先from u in _db.cp_user
您需要开始使用Linq to SQL或Linq来处理一般情况。这是在这里解释太基本的东西。 – niksofteng
@niksofteng好的非常感谢你在提出另一个问题之前,我会牢记这一点。 Regards –