ASP.NET MVC / EF代码第一个错误:无法检索模型的元数据

时间:2013-01-02 16:52:53

标签: asp.net-mvc-4 ef-code-first

我正在尝试在MVC4中创建一个控制器,我遇到了一个我不理解的错误(我是MVC的新手)。它说“无法检索'CIT.ViewModels.DashboardViewModel'的元数据......”然后给出了2个可能的问题。一个是DashboardViewModel没有定义键。另一个是EntitySet'DashboardViewModels'没有定义键。

我为DashboardViewModel定义了一个键,但这并没有解决问题。这是我的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。据我了解,你的DbSets就是你的桌子。我不想要或不需要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; }
 }

如何解决这些错误?

0 个答案:

没有答案