2016-11-02 9 views
0

コードの最初のアプローチを使用して、MVCプロジェクトのDefaultConnectionデータベースにテーブルを追加しようとしています。ASP.NET MVCのDefaultConnectionデータベースへのテーブルの追加と使用

MyClass.cs

public class MyClass 
{ 
    public int Id { get; set; } 
    public string Name{ get; set; } 
    public int Age{ get; set; } 
} 

MyClassController.cs

public class MyClassController : Controller 
{ 
    public MyClassDbContext myClassDbContext = new MyClassDbContext(); 
    public ActionResult Index() 
    { 
     return View(myClassDbContext.MyClasses.ToList()); 
    } 
} 

MyClassDbContext.cs私はを変更していない

public class MyClassDbContext: DbContext 
{ 
    public DbSet<MyClass> MyClasses { get; set; } 
} 

私は次のセットアップを持っていますは、ユーザー登録と認証で動作するデータベースと同じデータベースであり、問​​題はありません。

コードを実行すると、のエラーがreturn View(myClassDbContext.MyClasses.ToList())に発生します。

質問:

何か基本的なものがありませんか?

+0

'this.Database.Exists()'行にブレークポイントを設定し、そこにDBが存在するかどうかを確認してください。エラーが "Server not found"と表示された場合は、web.configファイルにSQL Server接続文字列を設定する必要があります。 –

答えて

2
public class MyClassDbContext: DbContext 
{ 
    public MyClassDbContext(string connString) 
     : base(connString) 
    { 
    } 
    public DbSet<MyClass> MyClasses { get; set; } 
} 

public class MyClassController : Controller 
{ 
    public MyClassDbContext myClassDbContext = new MyClassDbContext("Name Of ConnectionString"); 
    public ActionResult Index() 
    { 
     return View(myClassDbContext.MyClasses.ToList()); 
    } 
} 

さらにテーブルを追加するには、コンストラクタを使用する必要があります。上記の コードを使用すると効果的です。

+0

これは私のエラーを解決しました。私は 'base'コンストラクタを呼び出していませんでした。 – hello

1

あなたはmodel例えばMyClassを追加すると、あなたは新しいDBContext例えばMyClassDbContextを追加する必要はありません、あなたは自分の登録のために働くあなたが存在DBContextMyClassを追加しますが。このようにいろいろ書い:

public class OldDbContext: DbContext 
{ 
    public DbSet<MyClass> MyClasses { get; set; } 
    public DbSet<User> Users{ get; set; } 
} 

はその後、自動generatgeテーブル(複数のチェックthis)にInitializerを追加する必要がある、またはあなたが表にクラスに一致している場合、それがうまくいく自分自身でテーブルを追加することができます。

-2

web.configの接続文字列を確認し、有効かどうかを確認してください。また、SQL Serverが既に接続されていることを確認してください。

関連する問題