Nuget
PM> install-package EntityFramework
クラスを定義
public class Course {
public int Id {get; set;}
public string Title {get; set}
}
public class Professor {
public int Id {get; set;}
public IList<Course> {get; set;}
}
DBContextを定義
public class XContext : DBContext{
public DBSet<Course> Courses {get; set;}
public DBSet<Professor> Professors {get; set;}
public XContext() : base("name=DefaultConnection"){}
}
App.configを編集
<connectionStrings>
<add name = "DefaultConnection" connectionString="data source=.\SQLEXPRESS; intial catalog=CodeFirstDemo; integrated security=SSPI" providerName="System.Data.SqlClient"/>
</connectionStrings>
Initial Catalogはデータベース名, SSPIはWindows認証なので、パスワード認証は別途
connectionStringはVisualStudioのサーバーエクスプローラーでテスト接続後、そのプロパティを参照するとすぐわかる
マイグレーション
PM> enable-migrations
一度だけやればよい。
マイグレーション追加
PM> add-migration InitialModel
データベースアップデート
PM> update-database
これで実際にデータベースが現れる。SSMSで確認してみるとよい。
変更
コードを変更したら、再度マイグレーションを行う
PM> add-migration AddNameColumnToProfessor
強制するには-Force
migrationフォルダに作成されるのが変化ぶんなので
sql("UPDATE Professors SET Id = 1")
のような強制もここに書ける
最後に
PM> update-database
で、データベースに反映される
変更の上書き
migrationを強制上書きするには以下
PM> add-migration InitialModel -force