你能否告诉我关于我的方法中关于返回linq的源代码的解释。我的源代码如下:
public int GetRole(string user, string pass)
{
TAEntities db = new TAEntities();
var Hasil = from u in db.User
join r in db.Role
on u.id_Role equals r.id_Role
where u.userName == user && u.password == pass
select r.id_Role;
return Hasil;
}
我的源代码仍然是假的。然后,我现在更新我的源代码:
public int GetRole(string user, string pass)
{
Tugas_AkhirEntities db = new Tugas_AkhirEntities();
var Hasil = from u in db.User
join r in db.Role
on u.id_Role equals r.id_Role
where u.userName == user && u.password == pass
select r.id_Role;
return Hasil.FirstOrDefault();
}
我添加此源代码以检查我的值是否保存在变量hasil中。
if (model.GetRole(model.UserName,model.Password) == 1)
{
return RedirectToAction("Index", "Home");
}
else
return RedirectToAction("Contact", "Home");
你可以给我更多解决方案吗?
答案 0 :(得分:4)
Hasil
是IEnumerable<int>
或IQueryable<int>
,您的方法会返回int
。您需要使用First
,FirstOrDefault
,Single
或SingleOrDefault
选择其中一个值,例如
return Hasil.First();
或者,将方法的返回类型更改为IEnumerable<int>
或IQueryable<int>
。