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; }
}
これらのエラーに対処するにはどうすればよいですか?