×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
MVC5入門 その8 ローカルDB
EntityFrameworkがよく解らないので山田祥寛氏の「ASP.NET MVC入門【バージョン3対応】」
を見ながら進める。防備録である。同氏のASP.NET MVC5も併用しながら確認している
・最も悩んだのがWeb.configで実態はどこかというと
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\MyMvc.mdf;Initial Catalog=MyMvc;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
・App_Dataフォルダ内の アプリ名.MyMvcContextに実態とlogが生成される。
ローカルDBが構成されている
・DBがどこで生成されているかというと
MyMvcInitializerで
Inherits DropCreateDatabaseIfModelChanges(Of MyMvcContext)としてるが CreateDatabaseIfNotExists(無いとき)、DropCreateDatabaseIfModelChanges(変更されたとき)、DropCreateDatabaseAlways(毎回)の指定ができる。 androidみたいですね
・実際にはglobal.asaxのApplication_Startに
Database.SetInitializer(Of MyMvcContext)(New MyMvcInitializer())で実行される
・MyMvcContextが橋渡しをしている
Public Property Books As DbSet(Of Book) ' Booksテーブル
Public Property Reviews As DbSet(Of Review) ' Reviewsテーブル
MyMvcContextのBooks、Reviewsプロパティは、
Books、Reviewsテーブルにアクセスし、
コード単位にBook、Reviewエンティティのインスタンスに割り当てる
という事のようだ
Androidと同じで、パターンととして覚えればいいとおもう
・疑問はIdという意味で
クラス(単数形)は、同名のテーブル(複数形)にマッピングされる
(これもそう覚えればいい)
・プロパティは、同名のテーブル列にマッピングされる主キーは、Id、
または<クラス名>Idという名前がデフォルト
(これは困った、、、業務アプリでは複数KEYが当たり前、、、)
・(例:ReviewId上記以外の主キーを定義するには、Key属性(System.ComponentModel.DataAnnotations名前空間)を付けてプロパティを定義する例Isbn)
(よくわからん)
・nullを許容する値型の列は、null許容型で指定する(例:Priceナビゲーション・プロパティは、同名のエンティティにマッピングされる(例:Reviews
一応DBはこれで生成されるので、次は画面のインタフェース
EntityFrameworkがよく解らないので山田祥寛氏の「ASP.NET MVC入門【バージョン3対応】」
を見ながら進める。防備録である。同氏のASP.NET MVC5も併用しながら確認している
・最も悩んだのがWeb.configで実態はどこかというと
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\MyMvc.mdf;Initial Catalog=MyMvc;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
・App_Dataフォルダ内の アプリ名.MyMvcContextに実態とlogが生成される。
ローカルDBが構成されている
・DBがどこで生成されているかというと
MyMvcInitializerで
Inherits DropCreateDatabaseIfModelChanges(Of MyMvcContext)としてるが CreateDatabaseIfNotExists(無いとき)、DropCreateDatabaseIfModelChanges(変更されたとき)、DropCreateDatabaseAlways(毎回)の指定ができる。 androidみたいですね
・実際にはglobal.asaxのApplication_Startに
Database.SetInitializer(Of MyMvcContext)(New MyMvcInitializer())で実行される
・MyMvcContextが橋渡しをしている
Public Property Books As DbSet(Of Book) ' Booksテーブル
Public Property Reviews As DbSet(Of Review) ' Reviewsテーブル
MyMvcContextのBooks、Reviewsプロパティは、
Books、Reviewsテーブルにアクセスし、
コード単位にBook、Reviewエンティティのインスタンスに割り当てる
という事のようだ
Androidと同じで、パターンととして覚えればいいとおもう
・疑問はIdという意味で
クラス(単数形)は、同名のテーブル(複数形)にマッピングされる
(これもそう覚えればいい)
・プロパティは、同名のテーブル列にマッピングされる主キーは、Id、
または<クラス名>Idという名前がデフォルト
(これは困った、、、業務アプリでは複数KEYが当たり前、、、)
・(例:ReviewId上記以外の主キーを定義するには、Key属性(System.ComponentModel.DataAnnotations名前空間)を付けてプロパティを定義する例Isbn)
(よくわからん)
・nullを許容する値型の列は、null許容型で指定する(例:Priceナビゲーション・プロパティは、同名のエンティティにマッピングされる(例:Reviews
一応DBはこれで生成されるので、次は画面のインタフェース
PR