忍者ブログ
[193]  [190]  [189]  [188]  [179]  [178]  [177]  [176]  [175]  [174]  [173
×

[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みたいですね


・実際にはg
lobal.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
カレンダー
04 2025/05 06
S M T W T F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
フリーエリア
最新CM
[03/10 DORA]
最新TB
プロフィール
HN:
dorabu
性別:
非公開
バーコード
ブログ内検索
P R
Copyright © ドラブーのアンドロイドとIoTなブログ All rights reserved. / Template by 四季. / Material by てんせん.

忍者ブログ [PR]