Итак, я довольно новичок во всей работе MVC и ASP.NET.Доступ к уже существующим данным Контекст в MVC 5
Я создал новое приложение MVC в VS2013 и теперь настраиваю его. В настоящее время я пишу область администратора, когда могу изменять свойства пользователей.
Весь раздел администрирования связан с adminController. В этом контроллере я создаю новый UserContext для доступа к пользовательской базе данных. Однако, поскольку приложение уже определяет контекст пользователя в AccountController, это не обязательно.
Что было бы лучше всего использовать для доступа к UserContext в моем AdminController?
/редактирование: В комментарии я объяснял это немного подробнее:
Данные-контекст и подключение к базе данных уже существуют. Это не проблема. Моя проблема заключается в том, что у меня есть контроллер учетной записи, который управляет регистрацией, регистрацией и т. Д. Этот контроллер запускается при загрузке страницы. с этим экземпляром у меня также есть экземпляр класса UserManager. В моем контроллере admin я хочу использовать этот экземпляр класса UserManager, а не создавать новый, как я сейчас делаю. Надеюсь, это объясняет это немного лучше.
/edit2: В соответствии с запросами фрагментов кода. Я хочу сделать, чтобы взять экземпляр UserContext из класса AccountController и использовать его в классе AdminController. Я также могу добавить, что соединение с базой данных отлично работает. Я могу запросить все. Просто я не хочу создавать другой экземпляр UserContext.
AccountController.cs:
[Authorize]
public class AccountController : Controller
{
public AccountController()
: this(new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new UserContext())))
{
}
public AccountController(UserManager<ApplicationUser> userManager)
{
UserManager = userManager;
}
public UserManager<ApplicationUser> UserManager { get; private set; }
//
// GET: /Account/Login
[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
ViewBag.ReturnUrl = returnUrl;
return View();
}
// Additional GET/POST/PUT/DELETE methods
AdminController.cs
/// <summary>The admin controller.</summary>
public class AdminController : Controller
{
private UserContext userContext = new UserContext();
public ActionResult Admin()
{
return this.View();
}
public ActionResult ManageUser()
{
var users = this.userContext.Users.ToList();
return this.PartialView(users);
}
UserContext.cs
public class UserContext : IdentityDbContext<ApplicationUser>
{
public UserContext()
: base("DefaultConnection")
{
}
}
Web.config
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-N44Web-20131104100543.mdf;Initial Catalog=aspnet-N44Web-20131104100543;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
Хорошо, сделаю это. Спасибо за ответ – Ruhrpottpatriot