EntityFramework6.1 for DeskTop

MVCのお勉強もひと段落したのでFormアプリにEF6.1でもかましてみようかとコーヒー飲みながら休憩時間にアタック 結論から言うと本業に影響するほど嵌まりました。ASP.Net MVCからEFを利用する場合ほとんどオートメーション それをDeskTopアプリに適応するにはEF6.1を理解していないと何もできないことに気付かされた。

今回はSqlServerCompactでローカルファイルとする。 またテスト用データを準備する。

問題点1.Debug/ReleaseフォルダにローカルDB(.sdf)がフルパス指定 ConnectionStrings指定でData Source指定にDataDirectoryが使えない。

問題点2.EF61で非常に便利になったMigration機能が初期状態では使えない。

問題点1  開発アプリ起動時にAppDomainにDataDirectoryを追加設定  AppDomain.CurrentDomain.SetData("DataDirectory", AppDomain.CurrentDomain.BaseDirectory);  これでSQLServerCompactの接続文字列は以下のように記述

<connectionStrings>
    <add name="UtilPassContext"
         connectionString="Data Source=|DataDirectory|\UtilPass.sdf"
         providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>