数据库优先ASP.Net MVC 5和实体框架

时间:2017-02-21 19:26:39

标签: c# asp.net asp.net-mvc entity-framework

我正在尝试在线跟踪教程,以帮助我在MVC项目中设置角色,但似乎无法理解所有内容。我的公司要求我创建我的项目Database First,而不是首先编写代码,所以我的角色已经存在于我的dbContext中。我不想创建一个控制器来索引,创建,编辑等我的角色,至少不是在这一步,但我 DO 想知道我的用户组是什么用户所属,然后将他们的userGroup称为他们的角色。

所以,我有两个模特;一个用户,一个用户组(基本上是“角色”表):

public partial class User : IdentityUser
{
    public int UKey { get; set; }
    public int UgKey { get; set; }
    public string LastName { get; set; }
    public string FirstName { get; set; }
    public string MiddleName { get; set; }
    public string EmailAddress { get; set; }
    public string Username { get; set; }
    public string Password { get; set; }
    public bool UseBrightreeAuth { get; set; }
    public bool Active { get; set; }
}

public partial class UserGroup
{
    public int UgKey { get; set; }
    public string Name { get; set; }
    public bool Active { get; set; }
}

我有一个帐户控制器来处理我的网站“登录”:

public ActionResult Login(LoginViewModel login)
{
        if (!ModelState.IsValid)
        {
            ViewBag.Error = "Form is not valid; please review and try again.";
            return View("Login");
        }

        using (var wfc = new WorkflowContext())
        {                
            if(wfc.User.Where(x => x.Username == login.Username).Any())
            {
                    //ignore the bad logic/LINQ, it's temporary...

                    var UserManager = new UserManager<User>(new UserStore<User>(wfc));
                    UserManager.AddToRole("UserName", "UserRole");
            }
            else
            {
                    ViewBag.Error = "Credentials invalid. Please try again.";
                            return View("Login");
            }
        }
}

下面的代码行不会编译,说wfc不是一个有效的参数,但我不确定我应该使用什么呢?

//Where wfc is the Context that contains my User and UserGroup Tables
var UserManager = new UserManager<User>(new UserStore<User>(wfc));

我收到错误

  

无法从“Workflow.Models.WorkflowContext”转换为“System.Data.Entity.DbContext”

是否有更好的方法将用户添加到角色中,或者我是否误解了该过程?感谢。

0 个答案:

没有答案