如何使用MVC中的实体框架从存储过程中检索结果

时间:2018-02-20 15:34:16

标签: asp.net-mvc entity-framework

我有一个存储过程sp_ValidateUser,它返回两列UserIDRoleID

我使用以下设置创建了函数导入:

enter image description here

MVC代码:

[HttpPost]
[AllowAnonymous]
public ActionResult Index(tblUser user)
{
    SchoolDBEntities usersEntities = new SchoolDBEntities();
    int? userId = usersEntities.fnValidateUser(user.Username, user.Password).FirstOrDefault(); //Check if correct username and password

    string message = string.Empty;

    if (userId.RoleID == 1) //returns error
    {
        //Redirect to URL
    }

    return View(user);
}

如何从RoleID的返回集合中检索UserIDsp_ValidateUser_Result

2 个答案:

答案 0 :(得分:2)

由于您已经使用函数导入生成的存储过程的方法调用返回了一个名为sp_ValidatUser_Result的复杂类型,因此您应该能够获得如下结果:

sp_ValidatUser_Result result = usersEntities.fnValidateUser(user.Username, user.Password).FirstOrDefault(); //Check if correct username and password

string message = string.Empty;

if (result != null && result.RoleID == 1)
{
     //Redirect to URL
}

答案 1 :(得分:0)

我已经构建了一个存储过程,它将id数组作为输入参数并返回数据表(在我的例子中只是自引用表中的子元素的id)Take a look at the code here it's using EF and code first approach