atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
プログラミング図書館・本館
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
プログラミング図書館・本館
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
プログラミング図書館・本館
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • プログラミング図書館・本館
  • .NET
  • Code First Programming Model

Code First Programming Model

最終更新:2011年06月26日 11:12

atachi

- view
管理者のみ編集可

EntityFrameworks4(以降、EF4)はVS2010と共にリリースされ、POCOエンティティやモデルファーストなどの開発手法が取り入れられた先進的で斬新なアップデートとなりましたが、CTP4にはさらにコードファーストによるEntityFrameworkの新しい開発アプローチが提供されました。
(EF4はCTP4からCTP5にバージョンアップしました(ReleaseNote)

  • Microsoft ADO.NET Entity Framework Feature Community Technology Preview 4
  • コードファースト [#j958e6a0]
  • EF4.1
  • EF4 CTP5
  • EF4 CTP4 [#o94d1795]
  • コードファーストによるアプローチの結論 [#lcdc1bbe]

コードファースト

コードファーストからのアプローチで永続化エンティティを扱う開発手法は、既存の開発手法を駆逐するようなものではありません。 実際の開発現場に於いて、コードファーストを使用して開発を行うケースは限られており、次のコードファーストが持つ特徴が開発現場の生産性とのトレードオフとマッチした場合に非常に斬新なアプローチとして取り入れることができるかもしれません。

  • PlainOldなクラスをデータモデルクラスに使用できる(POCOと同じ)
  • CoC(convention over configuration) (Wikipedia:設定より規約)
  • IDEが持つデザイナやXMLによる、マッピング記述が不必要

特にCoCでエンティティの永続化を実現できる点が、開発生産性の向上に大きく貢献しています。(*1)
多くの規約によりエンティティとオブジェクトとのマッピングはソースコード上に特別な記述なしに設定されます(*2)

EF4.1

EntityFrameworkのバージョン4.1です。

主キーの作成をデータベースが自動的につくることができるなどのオプションが追加されました。

  • EF4.1ダウンロード
  • EF4.1オフィシャルブログ

EF4 CTP5

Microsoft ADO.NET Entity Framework Feature Community Technology Preview 5

CTP4からバージョンアップされCTP5となりました。
変更点がいくつかあるため、CTP4のコードをそのままCTP5でコンパイルできなくなっています。

  • アセンブリ名に変更があります。
  • コードファーストでのデータベース構造の初期化コードがより良いものになっています
  • コードファーストにおいて、既存のデータベースからEdmMetadataテーブルを除外してマッピングを行います。
  • クラス名に変更があります
  • DbSetがObservableCollection型のコレクションを返すことができるようになりました。
    WPFのListItem系のコントロール(ListControlやListView、DataGridなど)のItemsSourceにバインディングすることができます。

CTP5のプロジェクト

EF4 CTP4

CTP4はMicrosoft ADO.NET Entity Framework Feature Community Technology Preview 4 からダウンロードできます。
セットアップファイルでの配布ですが、セットアップには「Microsoft.Data.Entity.CTP.DLL」しか含まれていません。(Project Filesフォルダに放り込まれるので、このDLLを直接参照するか、参照したいプロジェクトにコピーして参照して使用する)

CTP4に含まれている名前空間は次の通り。

  • System.ComponentModel.DataAnnotations
  • System.Data.Entity
  • System.Data.Entity.Infrastructure
  • System.Data.Entity.ModelConfiguration

余談ですが、System.Data.Entity.DLLにはSystem.Data.Entityという名前空間は含まれていません。

CTP4のプロジェクト

コードファーストによるアプローチの結論

すべてコードによってモデルの設計からデータベースへのマッピングまで行えるため、コードファーストによるアプローチでのエンティティ永続化は非常に使いやすいことがわかります。バックグラウンドにSQLCEを使用することで、外部にサーバーを用意したり、エンドユーザーにデータベースを稼働させる必要もなくなります。

さらに、SQLCEを使うことでオブジェクトのシリアライズデータをバイナリファイルで保存するより確実にデータの永続化が実現できます。

パフォーマンスについてはそれほどよくはありません。といっても、すでに埋め込み型データベースの地位を確立したSQLiteと同じかそれ以上のパフォーマンスは発揮できます。
もちろん、サーバーデーモン型データベースサーバーであるのSQLServerやMySQLやPostgreSQLを使用するよりもパフォーマンスは圧倒的に落ちますし、機能もかなり限定的です。(SQLiteやSQLCEにはストアドプロシージャをはじめとするおおくの機能が実装されていない)

「コードファースト手法+EF4+SQL Server Compact Edition」の組み合わせは、小規模な商用ソフトやツールなどで使用する分には最高の生産性を提供できると思われます。

「Code First Programming Model」をウィキ内検索
LINE
シェア
Tweet
添付ファイル
  • CTP4_1.jpg
  • CTP4_2.jpg
  • CTP4_3.jpg
  • Refdll.jpg
  • SqlceData.jpg

[Amazon商品]


プログラミング図書館・本館
記事メニュー

C#

  • 新機能
  • 言語文法
    • 型
    • 関数
    • クラス
    • 演算子
    • 構文
    • デリゲート
    • イベント
    • 例外処理
    • アトリビュート
    • 名前空間
    • ジェネリクス
  • リフレクション
  • LINQ

.NET Frameworks

  • 数値
  • 文字列
  • 日付時刻
  • オブジェクト
  • コレクション
  • ファイルシステム
  • スレッド
  • データテーブル
  • グラフィックス
  • デバッグ
    • ログ出力
    • ユニットテスト
  • ユーティリティ
  • ネットワーク
    • HTTP
  • デバイス
    • COMポート
  • EntityFrameworks
    • Code First Programming Model
  • デバイスドライバ
    • WinUSB

WPF

  • XAML
  • イベント
  • コマンド
  • スタイル
  • データバインディング
  • コンポーネント
  • グラフィックス
  • カスタムコンポーネント
    • 依存関係プロパティ

アプリケーション

  • 二重起動の防止
  • アンマネージドDLLの読み込み
  • 外部のアプリケーションを起動

VisualStudio

  • 拡張機能
  • カラー設定

ライブラリ

  • WPFToolkit
  • A Fast CSV Reader
  • AvalonDock

実装方法

  • ドラッグアンドドロップ
  • アプリケーション内のドラッグアンドドロップ
  • CSVからDataTable

minecraft

  • Bukkit
  • プラグイン
    • Permissions
    • SlowHealth
    • CookieMonster
    • iConomy
    • WorldGuard
    • Lockette
    • MyHome
    • BorderGuard

サイトについて

プロフィール/リンク/未分類

メモ/ゲーム/Stacks/Omoikane


更新履歴

取得中です。

ここを編集

記事メニュー2

読んでいる本


Effective C#

QLOOKアクセス解析

ここを編集

人気記事ランキング
  1. .NET/WinUSB
  2. WPF/コンポーネント/コントロール/テキストボックス/バリデーション
  3. WPF/コマンド
もっと見る
最近更新されたページ
  • 5035日前

    Bukkit
  • 5041日前

    トップページ
  • 5062日前

    メニュー
  • 5072日前

    WPF/グラフィックス
  • 5072日前

    .NET/グラフィックス
  • 5072日前

    .NET/グラフィックス/画像の書き込み
  • 5072日前

    .NET/グラフィックス/画像の読み込み
  • 5078日前

    .NET/コレクション
  • 5096日前

    .NET/WinUSB
  • 5131日前

    BorderGuardプラグイン
もっと見る
人気記事ランキング
  1. .NET/WinUSB
  2. WPF/コンポーネント/コントロール/テキストボックス/バリデーション
  3. WPF/コマンド
もっと見る
最近更新されたページ
  • 5035日前

    Bukkit
  • 5041日前

    トップページ
  • 5062日前

    メニュー
  • 5072日前

    WPF/グラフィックス
  • 5072日前

    .NET/グラフィックス
  • 5072日前

    .NET/グラフィックス/画像の書き込み
  • 5072日前

    .NET/グラフィックス/画像の読み込み
  • 5078日前

    .NET/コレクション
  • 5096日前

    .NET/WinUSB
  • 5131日前

    BorderGuardプラグイン
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  2. MadTown GTA (Beta) まとめウィキ
  3. R.E.P.O. 日本語解説Wiki
  4. シュガードール情報まとめウィキ
  5. ソードランページ @ 非公式wiki
  6. AviUtl2のWiki
  7. Dark War Survival攻略
  8. シミュグラ2Wiki(Simulation Of Grand2)GTARP
  9. ヒカマーWiki
  10. 星飼いの詩@ ウィキ
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  5. 初音ミク Wiki
  6. 発車メロディーwiki
  7. 検索してはいけない言葉 @ ウィキ
  8. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  9. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  10. オレカバトル アプリ版 @ ウィキ
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 参加者一覧 - ストグラ まとめ @ウィキ
  2. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  3. ガンダム・エアリアル(改修型) - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  4. 機体一覧 - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  5. 鬼レンチャン(レベル順) - 鬼レンチャンWiki
  6. hantasma - ストグラ まとめ @ウィキ
  7. ミゲル・セルベート - アニヲタWiki(仮)
  8. 危険度7 - 検索してはいけない言葉 @ ウィキ
  9. ドンキーコング バナンザ - アニヲタWiki(仮)
  10. 豊和工業株式会社 - アニヲタWiki(仮)
もっと見る
注釈

*1 CoCを使用せずに開発したエンティティの永続化については、当サイトのJavaページにあるHibernateあたりを参照すると、その混沌さが理解できるでしょう。オススメしません。

*2 強いて言うならば、接続先DBの設定ぐらいか。

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.