如何在方法中从linq返回值?

时间:2013-06-30 15:01:53

标签: c# linq asp.net-mvc-4

你能否告诉我关于我的方法中关于返回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");
你可以给我更多解决方案吗?

1 个答案:

答案 0 :(得分:4)

HasilIEnumerable<int>IQueryable<int>,您的方法会返回int。您需要使用FirstFirstOrDefaultSingleSingleOrDefault选择其中一个值,例如

return Hasil.First();

或者,将方法的返回类型更改为IEnumerable<int>IQueryable<int>