我已经搜索了将近2天,但找不到答案,所以让我在这里提问。
我刚开始使用ASP.NET MVC 5。我已经成功地扩展了默认的ApplicationUser:IdentityUser类,所以现在它存储了关于用户的其他信息。其中一个扩展功能是存储用户属于哪个组织。一个组织可以有多个用户。在应用程序中,我希望能够将用户添加到任何组织中。我还希望能够直接管理组织。这是我的型号:
public class ApplicationUser : IdentityUser
{
[Required]
[MaxLength(30)]
public string FirstName { get; set; }
[Required]
[MaxLength(30)]
public string LastName { get; set; }
[Required]
[MaxLength(40)]
public string Email { get; set; }
[Required]
public virtual Organisation Organisation { get; set; }
}
public class Organisation
{
public int id { get; set; }
[Required]
[MaxLength(30)]
public string Name { get; set; }
[Required]
public DateTime RegistrationDate { get; set; }
[Required]
[MaxLength(30)]
public string DWId { get; set; }
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
//...
}
迁移后,EF为组织创建了一个单独的表格。到目前为止,一切都很好。
现在,我希望能够从组织表中查看和添加/删除/删除组织。为此,我创建了一个控制器。然而,在控制器内部,我无法引用Organizations表,因此我可以将其作为模型传递给视图。以下是我的想法,但没有做到:
public ActionResult Organisation()
{
ApplicationDbContext _db = new ApplicationDbContext();
var model = _db.Organisations.ToList(); //this does not work
return View(model);
}
当我试着建造它时,上面写着
'TrendfinderMVC.Models.ApplicationDbContext'不包含"组织"的定义和无扩展方法"组织"接受类型的第一个参数找不到"TrendfinderMVC.Models.ApplicationDbContext"(你是缺少using指令或程序集引用?)
事实上,当我开始键入'_db.'时,IntelliSense甚至没有在列表中显示任何与组织相关的内容。我如何获得当前所有组织的列表?如有任何见解,我们将不胜感激。
确保您已经在ApplicationDbContext
类中声明了您的组织集合
public class ApplicationDbContext : IdentityDbContext
{
public ApplicationDbContext()
: base("DefaultConnection"){}
public DbSet<Organisation> Organisations { get; set; }
...
}