我已经搜索了近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为组织创建了一个单独的表。到目前为止,非常好。
现在,我希望能够从“组织”表中查看和添加/删除/删除组织。为此,我创建了一个控制器。但是,在控制器内部,我无法引用“组织”表,因此我可以将其作为模型传递给视图。这是我的想法,但没有做到:
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甚至没有显示与列表中的组织相关的任何内容。我如何获得目前所有组织的列表?任何见解将不胜感激。
答案 0 :(得分:1)
确保您已在ApplicationDbContext
班级
public class ApplicationDbContext : IdentityDbContext
{
public ApplicationDbContext()
: base("DefaultConnection"){}
public DbSet<Organisation> Organisations { get; set; }
...
}