0

我正在使用 MVC 4、EF 5 和数据库优先方法。我添加了 2 个新表(UserDetails 和 UserAddress),在现有数据库中没有引用。我可以在 EDMX 文件中看到所有表,包括这 2 个新表并创建模型。但是当我试图在控制器中获取表格时,它会显示除 UserDetails 和 UserAddress 之外的所有模型 - 以下列方式。

[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);
        }
}

我错过了什么吗?

4

1 回答 1

1

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

在 AuthConfig.cs 中添加这个

WebSecurity.InitializeDatabaseConnection(
        "specifyTheDbContextHere",
        "UserProfile", 
        "UserId", 
        "UserName", 
        autoCreateTables: true
    );
于 2013-09-19T07:15:42.457 回答