C# 向标识模型添加一对多属性

C# 向标识模型添加一对多属性,c#,asp.net-mvc,entity-framework,asp.net-identity,C#,Asp.net Mvc,Entity Framework,Asp.net Identity,我刚刚开始学习MVC5和实体框架,以及使用身份模型 我正在尝试向ApplicationUser模型添加一个附加属性,即客户列表。基本上,一个用户可以有许多客户连接到他们的登录 我似乎至少在Register.cshtml页面上显示了客户列表,但是我不确定这是否是最好的方法 在我的RegisterViewModel.cs中,我添加了以下内容: [Display(Name = "Customer List")] public IEnumerable<Customer> Cu

我刚刚开始学习MVC5和实体框架,以及使用身份模型

我正在尝试向ApplicationUser模型添加一个附加属性,即客户列表。基本上,一个用户可以有许多客户连接到他们的登录

我似乎至少在Register.cshtml页面上显示了客户列表,但是我不确定这是否是最好的方法

在我的RegisterViewModel.cs中,我添加了以下内容:

    [Display(Name = "Customer List")]
    public IEnumerable<Customer> Customers { get; set; }
这是正确的做法吗?我担心的是,我已经将gatewayContext创建为AccountController的属性,但不确定这是否是正确的方法


抱歉,如果问题有点含糊不清。如果有必要,我可以改写!我只是想确保我以正确的方式构建应用程序。

您的RegisterViewModel更改的方向正确

但是,最好在控制器方法中使用DbContext:

public ActionResult Register(...)
{
    List<Customer> customers;

    using (GatewayContext db = new GatewayContext())
    {
        customers = db.Customers.ToList();
    }

    var viewModel = new RegisterViewModel();
    viewModel.Customers = customers;
    return View(viewModel);
}

这里的想法是尽可能快地使用和处理上下文。这有助于更快地将Sql Server连接返回到连接池,这意味着更少地等待其他同时请求的连接。

Thnak您真是太感谢了。我有一种感觉,那就是我的毁灭!
public ActionResult Register(...)
{
    List<Customer> customers;

    using (GatewayContext db = new GatewayContext())
    {
        customers = db.Customers.ToList();
    }

    var viewModel = new RegisterViewModel();
    viewModel.Customers = customers;
    return View(viewModel);
}