しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

Entity Framework

Entity Framework 6 は NULL 可のカラムに対する条件で特に非効率なクエリを生成する

Entity Framework 6 で NULL 可のカラムに対しての条件を書くと、非常に効率の悪いクエリが生成される問題にはまって事故りかけたのでメモを残します。テスト用に以下のようなテーブルとインデックスを作成しておきます。 CREATE TABLE [Product] ( [Id] [in…

Entity Framework 6 で登録日と更新日を自動設定する

Entity Framework 6 でも LightSpeed みたいに CreatedOn / UpdatedOn というプロパティがあれば、自動的に登録日と更新日を設定してほしい人生でした。なので人形町の夜王こと nabehiro 先生のブログのコードをパクろうかと思いましたが、リフレクションが…

今すぐ Entity Framework 6 で使える機能と Entity Framework 7 についてまとめた

富山で某 O 江さんが Entity Framework 4 で切り捨てたと言ってたので、最新の Entity Framework 6.1.2 について書きます。割と頑張っているし、Entity Framework 7 が期待出来そうです。EF6.1.2 RTM Available - ADO.NET Blog - Site Home - MSDN BlogsEnti…

ASP.NET 関係で最近アップデートが行われたパッケージまとめ

最近は Windows Azure Web サイトばかり弄っていたので ASP.NET 周りが疎かになってました。先日 ASP.NET MVC のマイナーアップデートが行われていたことに気が付かなかったのがショックだったので、関係しそうなパッケージのアップデートをまとめてみます。…

Entity Framework 6 と SQL Azure をうまく使う、たったひとつの冴えたやりかた

すいません、今回もタイトルを決めるのにホッテントリメーカーを使いました。もう歳なのか、良い感じのタイトルが浮かばなくて困ります。それはともかくとして、SQL Azure を使ったサービスを作る時にはリトライ処理を追加しておくのは、もはや常識と言って…

LightSpeed で空のシーケンスに Contains を呼び出すと腐る件について

通常は Entity Framework や LightSpeed などの LINQ に対応した ORM では、配列への Contains メソッド呼び出しは SQL でいう IN に変換されます。 // 取得したい ID をコレクションとして用意 var ids = new[] { "ALFKI", "BOLID", "LAUGB" }; // Customer…

Entity Framework や LightSpeed で集計系のメソッドを使う時の注意点

例えば、以下のようなテーブルが用意されているとします。その中にある Point カラムの値の合計を取得したい場合に、以下のような LINQ を書いて取得するのが一般的だと思います。 // userId は現在のユーザー ID var totalPoint = uow.PointHistories.Where…

ASP.NET で DbContext を扱う際のベストプラクティス

ASP.NET MVC のスキャフォールディングを使うと、以下のように Entity Framework の DbContext をコントローラのフィールドに持つコードが生成されます。 public class CustomerController : Controller { private SampleDbContext db = new SampleDbContext…

Entity Framework 5.0 RC と Enum Types の話

EF5 Release Candidate Available on NuGet - ADO.NET Blog - Site Home - MSDN Blogsというわけで、NuGet で Entity Framework 5.0 RC が公開されています。インストール or アップデートは Prerelease を含めれば自動で入ります。 // インストールの場合 I…

ASP.NET MVC 4 Beta で追加された Single Page Application を試す

ASP.NET MVC 4 Beta で追加された Web API プロジェクトを試す - しばやん雑記 では Web API プロジェクトを試しましたが、今回はもう一つ追加された Single Page Application を試してみようと思います。プロジェクトの作成は今までと同じで、テンプレート…

Entity Framework 4.3 Beta 1 のコードベースマイグレーションを試してみた

前回の Entity Framework 4.3 Beta 1 の自動マイグレーションを試してみた - しばやん雑記 では自動でマイグレーションを行いましたが、今回はコードベースでマイグレーションを試してみようと思います。基本的な流れとしては自動マイグレーションと同じで、…

Entity Framework 4.3 Beta 1 の自動マイグレーションを試してみた

Entity Framework 4.3 Beta 1 が昨日公開されました。詳細は ADO.NET team blog を見た方が早いと思います。EF 4.3 Beta 1 Released - ADO.NET Blog - Site Home - MSDN Blogs要約してしまうと以下の通り。 マイグレーション対応 Enable-Migrations / Update…

WebMatrix で Entity Framework 4.1 を使う

こんばんわ。目が痛いけど頑張ってブログを書きます、しばやんです。今回は普通は使わないだろうけど、実際には普通に使えるんだよシリーズ第一弾(謎)として Entity Framework 4.1 を使ったコードファースト開発を行ってみます。とりあえずは普通に WebMat…

Entity Framework 4.1 が公開されました

ようやく DbContext API とコードファーストに対応した Entity Framework 4.1 の正式版がリリースされました。RC からの変更点は予告通りキーでない文字列型とバイナリ型のデフォルト最大長が 128 から MAX になった点だけです。SQL CE では MAX に対応して…

Entity Framework 4.1 RC が公開されました

EF 4.1 Release Candidate Available - ADO.NET Blog - Site Home - MSDN Blogs今後一ヶ月以内に RTW が公開される予定になっています。インストーラと NuGet で提供されているので楽々セットアップですね。Download Entity Framework 4.1 RC from Official …

Entity Framework は 4.1 へ

EF 4.1 Is Coming (DbContext API & Code First RTW) - ADO.NET Blog - Site Home - MSDN BlogsEntity Framework CTP 5 は Entity Framework 4.1 となるらしいですね。RC では Go-Live ライセンスになる予定みたいですので、ようやく本格的に使っていけます…

Entity Framework コードファーストで複合キーを使ってみる

IDbSet に定義されてる Find というメソッドがオブジェクトの配列を受け取るようになっていて、複合キーの時に複数の値を指定できるようになってるんだなーと思っていたのですが、実際に使ったことが無かったので試しました。とりあえず適当にモデルクラスを…

Entity Framework CTP5 でマッピング周りがわかりやすくなったよ

Code First Mapping Changes in CTP5 - ADO.NET Blog - Site Home - MSDN Blogs知れば知るほど Code First を使いたくなってきますね。既にテストはいろいろ行ってますが、最初に Entity Framework が入った .NET 3.5 SP1 を思い出すと涙が出てきますね。と…

Entity Framework のコード・ファーストでテーブルを作成する

前回はモデルクラスを命名規約と ModelBuilder の Fluent API を使って作成するところまで書きました。今回はそのモデルからテーブルを作成していきます。 テーブルを作成する Entity Framework CTP 4 には System.Data.Entity.Infrastructure 名前空間に Da…

Entity Framework コード・ファースト開発の基本

Entity Framework CTP4 では命名規約を利用するだけで一般的な利用において十分なモデルを作成することが出来ますが、ModelBuilder の Fluent API を利用することでより詳細な永続化マッピングルールを定義することも出来ます。基本的な部分だけですが規約と…

Entity Framework の俺的まとめ

個人的に超ブームな Entity Framework について、日本語情報が少なすぎるので私が知りうる限りの情報をまとめてみました。勘違いしている部分などあると思うので、コメントで突っ込んでもらえるとありがたいです。 Entity Framework とは .NET Framework 3.5…

Entity Framework CTP4 を使う上での注意点

ローカルでは SQL Server Compact 4 で問題なかったのですが、本番サーバーの SQL Server 2008 へ繋ごうとした時に以下の問題が起きました。 RecreateDatabaseIfModelChanges や CreateDatabaseOnlyIfNotExists が動作しない Database.SetInitializer を呼び…

Entity Framework 使うなら読んでおくべきな記事

Entity Framework は LINQ to SQL と違って Entity SQL 経由で実行されます。いきなり SQL を生成する LINQ to SQL とは異なり 1 つ挟まってます。それはともかく、Entity Framework でも LINQ to SQL でも問題になるのがクエリ式内部では特定の CLR オブジ…

EF4 の POCO エンティティ

10 行でズバリ !! オブジェクト永続化 (データ層) を意識しないシステムの構築 (POCO エンティティの使用) (C#) in C#これは私のような初心者向けで非常にわかりやすい。つ[座布団]POCO でエンティティ書いて変更通知とか遅延読み込みとかどうするのかなぁと…

Entity Framework で一括読み込みを行う方法

以前 Entity Framework ではリレーションシップの参照が自動で読み込まれず、明示的に EntityReference.Load メソッドを呼び出してやらないと書きましたが、一括で読み込む方法があったみたいです。 LINQ クエリの Orders エンティティで呼び出される Includ…