无法在.Net Core RC2

时间:2016-05-21 21:12:08

标签: c# entity-framework entity asp.net-core-mvc .net-core-rc2

我正在尝试在.Net Core RC2中添加一个脚手架mvc视图但是我收到错误“DbContext上没有实体类型ClientsOverviewViewModel RNW.Data.ApplicationDbContext”

Add View to project

在视图中我想显示一个Client列表。 我的客户类:

public class Client : Person
{
    #region Personal Data 
    public Nationality Nationality { get; set; }
    public Confession Confession { get; set; }
    public string SSN { get; set; }
    public MaritalStatus MaritalStatus { get; set; }
    #endregion
    ...
}

    public class Person
{
    public string Firstname { get; set; }
    public string Lastname { get; set; }
    public Sex Sex { get; set; }
    public DateTime Birthday { get; set; }
    public Address Birthplace { get; set; }
    public Address ResidentialAddress { get; set; }
    public string EMail { get; set; }
    public string PhoneNumber { get; set; }
}

在列表中,我想显示5个属性,我已将其放入ViewModel:

public class ClientsOverviewViewModel
{
    [Display(Name = "Nachname")]
    public string LastName { get; set; }
    [Display(Name = "Vorname")]
    public string FirstName { get; set; }
    [Display(Name = "Geschlecht")]
    public Sex Sex { get; set; }
    [Display(Name = "Staatsbürgerschaft")]
    public string Nationality { get; set; }
    [Display(Name="Geburtsdatum")]
    public DateTime? DateOfBirth { get; set; }
}

这里也是我的ApplicationDbContext类:

    public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }
}

如果我尝试使用Client而不是viewmodel,我也会得到同样的错误。

到目前为止我尝试过的事情:

  • 创建一个不同的DbContext类,它派生自DbContext(假设这里是IdentityDbContext可能有问题)
  • 添加媒体资源public DbSet<Client> Clients { get; set; }
  • 添加一个属性public DbSet<ClientsOverviewViewModel> Clients { get; set; }(这不应该是必需的,但我想我会试一试)
  • 尝试模板和模型类的不同组合(除了Client和viewmodel),但没有成功

我还没有生成数据库,这可能是个问题吗? 我还在版本1.0.0-preview1-final

中使用实体框架核心

我也尝试过: 我添加了一个 TempDbContext 派生自DbContext,只是想用模型类客户端和数据上下文类 TempDbContext添加视图。 然后我收到错误“指定的项目不是列表的元素”

可悲的是,我无法找到有关我的问题的任何博客文章或stackoverflow问题。

2 个答案:

答案 0 :(得分:3)

您的ViewModel类必须有一个键。名为Id的属性可以正常工作。

答案 1 :(得分:0)

我遇到的问题是EF不支持通用列表(List)。一旦我改变了这一点,我就可以使用脚手架工具了。