【问题标题】:Cannot add view in .Net Core RC2无法在 .Net Core RC2 中添加视图
【发布时间】:2016-09-18 23:32:30
【问题描述】:

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

我想通过视图显示客户列表。 我的客户类:

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)
    {
    }
}

如果我尝试使用客户端而不是视图模型,我也会遇到同样的错误。

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

  • 创建一个不同的 DbContext 类,它派生自 DbContext(这里假设 IdentityDbContext 可能有问题)
  • 添加属性public DbSet&lt;Client&gt; Clients { get; set; }
  • 添加属性public DbSet&lt;ClientsOverviewViewModel&gt; Clients { get; set; }(这应该不是必需的,但我想我会尝试一下)
  • 尝试不同的模板和模型类组合(除了客户端和视图模型),但没有成功

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

版本中使用entity framework core

我也尝试过: 我添加了一个 TempDbContext,它 派生自 DbContext,并且只想添加带有 Model 类 Client 和 Data context 类 TempDbContext 的视图。 然后我得到错误“指定的项目不是列表的元素”

遗憾的是,我找不到任何关于我的问题的博文或 stackoverflow 问题。

【问题讨论】:

  • 为什么答案不被接受?

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


【解决方案1】:

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

【讨论】:

  • 这对我来说是个问题,我在 Id 字段名称中有错字
  • 我遇到了类似的问题,我的 ViewModel 中有一个 public Uri Url { get; set; }。显然代码生成不喜欢在其中使用 Uri 类型。在我阅读您关于 ViewModel 类可能存在问题的回答后,Visual Studio 中的“代码生成日志”输出确实为我指明了大致方向。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2016-09-15
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 2022-08-23
    • 2016-09-18
    • 2019-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多