1

MVC4 でコントローラーを作成しようとしていますが、理解できないエラーが表示されます (MVC は初めてです)。「'CIT.ViewModels.DashboardViewModel' のメタデータを取得できません...」と表示され、2 つの問題が考えられます。1 つは、DashboardViewModel にキーが定義されていないことです。もう 1 つは、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; }


    }

ご覧のとおり、クラスで構成されています。これを行ったのは、同じビューから複数のクラスにアクセスできるようにするためです。キーが必要だとは思いませんでしたが、キーを追加しましたが、問題は解決しませんでした。もう 1 つのエラーは、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; }
 }

これらのエラーに対処するにはどうすればよいですか?

4

0 に答える 0