次のエラーが表示されます。
オブジェクト名 'dbo.ImageMetas' が無効です。
この行で:
ビューを返します (db.Images.ToList());
私のデータベースコンテキストは次のようになります:
public class GalleryContext : DbContext
{
public GalleryContext()
: base("DefaultConnection")
{
}
public DbSet<ImageMeta> Images { get; set; }
public DbSet<ImageFile> ImageFiles { get; set; }
}
そして私のモデル:
public class ImageMeta
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public UserProfile User { get; set; }
public string Name { get; set; }
public virtual ICollection<ImageFile> Files { get; set; }
}
これは真新しい MVC4 プロジェクトです。最初にモデルを作成し、次にコントローラーを自動生成しました。
データベースを調べたところ、実際にテーブルがありません。
ただし、テーブルが自動作成されるという印象を受けました。このチュートリアルが示唆するように。
では、なぜそうしないのでしょうか。
コンテキストにちなんで名付けられた接続文字列を追加すると (そして基本コンストラクターを削除すると)、動作するようになりました。では、なぜ DefaultConnection を使用できないのでしょうか。
<add name="GalleryContext"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\gallery.mdf;Integrated Security=True"
providerName="System.Data.SqlClient"
/>