我正在尝试在 MVC4 中创建一个控制器,但我遇到了一个我不明白的错误(我是 MVC 新手)。它说“无法检索 'CIT.ViewModels.DashboardViewModel'... 的元数据”,然后给出 2 个可能的问题。一是 DashboardViewModel 没有定义键。另一个是 EntitySet 'DashboardViewModels' 没有定义键。
我为 DashboardViewModel 定义了一个键,但这并没有解决问题。这是我的仪表板视图模型;
public class DashboardViewModel
{
public DashboardViewModel() { }
[Key]
public int Id { get; set; }
public Hardware Hardware { get; set; }
public Software Software { get; set; }
public HardwareType HardwareType { get; set; }
public Manufacturer Manufacturer { get; set; }
public SoftwarePublisher SoftwarePublisher { get; set; }
}
如您所见,它由类组成。我这样做是为了让我可以从同一个视图访问多个类。我认为它不需要密钥,但我添加了一个并没有解决问题。另一个错误听起来像是在为 DashboardViewModels 寻找 DbSet。据我了解,您的 DbSet 就是您的表格。我不想要或不需要 DashboardViewModels 表。我这样做只是为了在我的视图中可以访问多个表/类。到目前为止,这一切都很好。
当我尝试创建控制器时,我使用 DashboardViewModel 作为我的模型,使用 Context 作为我的上下文。这是我的背景:
public class Context : DbContext
{
public DbSet<Software> Softwares { get; set; }
public DbSet<Location> Locations { get; set; }
public DbSet<SoftwarePublisher> SoftwarePublishers { get; set; }
public DbSet<SoftwareType> SoftwareTypes { get; set; }
public DbSet<Hardware> Hardwares { get; set; }
public DbSet<Manufacturer> Manufacturers { get; set; }
public DbSet<HardwareType> HardwareTypes { get; set; }
}
我该如何解决这些错误?