EF 5 和 MVC 4:无法首先使用 Databse 获取控制器中没有引用的表

本文关键字:控制器 获取 Databse 引用 MVC EF | 更新日期: 2023-09-27 18:31:58

我正在使用MVC 4,EF 5和数据库优先方法。我添加了 2 个新表(用户详细信息和用户地址),在现有数据库中没有引用。我能够在EDMX文件中看到所有表,包括这两个新表,并创建了模型。但是当 im 尝试在控制器中获取表时,它会通过以下方式显示除用户详细信息和用户地址之外的所有模型。

[Authorize]
[InitializeSimpleMembership]
public class AccountController : Controller
{
  private DbRestaurantEntities db = new DbRestaurantEntities();
   public ActionResult Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    WebSecurity.CreateUserAndAccount(model.UserName, model.Password);
                    var userId = WebSecurity.GetUserId(User.Identity.Name);
                    //db.UserDetails -- Not showing
                    WebSecurity.Login(model.UserName, model.Password);
                    return RedirectToAction("Index", "Home");
                }
                catch (MembershipCreateUserException e)
                {
                    ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
                }
            }
            return View(model);
        }
}

我错过了什么吗?

EF 5 和 MVC 4:无法首先使用 Databse 获取控制器中没有引用的表

WebSecurity 使用不同的 dbContext,则需要使用相同的 dbContext,该上下文用于创建数据库表。您可以在连接字符串的 web.config 文件中查看它。并使用确切的数据库上下文

在身份验证配置中添加此内容.cs

WebSecurity.InitializeDatabaseConnection(
        "specifyTheDbContextHere",
        "UserProfile", 
        "UserId", 
        "UserName", 
        autoCreateTables: true
    );