EntityFramework.Extendedを使用してEFを拡張します(Entity Framework Extension Series 2)
Use Entityframework Extended Extend Ef
序文
今日はEntityFramework.Extendedについてお話します
まず、次のように、このEntityFramework.Extendedとは何ですか。
これは、EntityFrameworkを拡張するクラスライブラリです。
EF 5.0 / 6.0+を完全にサポートします。
GitHubアドレス https://github.com/loresoft/EntityFramework.Extended 、
最終更新は2015/07/10でした
このライブラリは、バッチ更新と削除をサポートしています。クエリ結果キャッシュと監査ログ。
この拡張機能は、バッチ操作ごとに1つのSQLステートメントのみを生成し、EntityFrameworkによって提供されるネイティブメソッドとしてNデータのバッチでNのSQLステートメントを生成しません。
この記事で使用されている環境とテクノロジー
システム:WIN7
データベース:SQL Server2008
関連テクノロジー:MVC5 + EF6.1.3 + EntityFramework.Extended6.0
第1章:データベースのバッチ操作
バッチ削除:
//Remember to quoteusing EntityFramework.Extensions//Either way is possible, Context is your EF context object.context.LogData.Delete(a => a.EntityKey == 'aa') context.LogData.Where(a => a.EntityKey == 'aa').Delete()
バッチ更新:
//data is the number of rows modifiedint data =context.LogData.Where(a=>a.EntityKey=='aa').Update(b=> new LogData { EntityName = 'ss' })//The second way of writing, this is for DbSet, has been marked outdated var data = context.LogData.Update(a => a.EntityKey == 'aa',b=> new LogData { EntityName = 'ss' })
バッチ増加:
//This has nothing to do with Extended... EF itself comes with it, just give the novice an example, the god ignores it...int data= context.LogData.AddRange(new List())
第2章:データベースをバッチでクエリする
バッチクエリ:
原則はこれです:
Eの原文:
将来のクエリは、IQuerableを保持する適切なIFutureQueryオブジェクトを作成することによって機能します。その後、IFutureQueryオブジェクトはIFutureContext.FutureQueriesリストに格納されます。次に、IFutureQueryオブジェクトの1つが列挙されると、LoadActionデリゲートを介してIFutureContext.ExecuteFutureQueries()を呼び出します。 ExecuteFutureQueriesは、保存されているすべてのIFutureQueryオブジェクトからバッチクエリを作成します。最後に、すべてのIFutureQueryオブジェクトが、クエリの結果で更新されます。
このコックのスパイシーチキンエロ翻訳:
Futureは、IQuerableに基づいてカスタムIFutureQueryオブジェクトを作成し、それをIFutureContext.FutureQueriesクエリキューに追加します。キュー内のオブジェクトがLoadActionを呼び出すと、IFutureContext.ExecuteFutureQueries()メソッドが実行され、ExecuteFutureQueriesがバッチを作成します。 IFutureQueryをクエリし、最後にすべてのIFutureQueryクエリ結果(つまり、クエリ)を更新します。
第3章:EFのデータ監査ログ
データ監査ログ:
最初に、すべてのエンティティの操作(追加、削除、変更)を監視する監査の概念について説明します。
まず効果を見てみましょう。
これは彼が追跡する情報です。この情報はデータベースまたはログストレージ(テキスト、XML、キャッシュ)に簡単に保存できます。
以下では、使用法について説明します。
まず、アプリケーションの入り口(Application_Start)で構成できます(例としてMVC Webアプリケーションを使用します)。
ここでの構成は省略できます。デフォルトの構成も問題ありません。もちろん、必要に応じて参照できます。
https://github.com/loresoft/EntityFramework.Extended/wiki/Audit-Log
これがより詳細な構成の紹介です
以下では、直接使用を開始します。
栗を与える:
最終結果は次のとおりです。
実行した3つの操作を便利に監視していることがわかります。
(重要な注意:ここで注意する必要があるのは、ここでの監査ログは、従来の書き込みの追加、削除、および変更のみを監視できるということです。上記の追加、削除、変更のバッチが監視できないのは非常に奇妙です、自分で書いた拡張ライブラリですが、監視できません-、痛いと言わざるを得ません。)
第4章:クエリキャッシュ
コードは次のように表示されます。
あまり使わないので、詳しくは説明しません。興味のある友達は自分でチェックできます。
https://github.com/loresoft/EntityFramework.Extended/wiki/Query-Result-Cache
最後に書く
これで記事は終わりです。記事を書くプロセスは、古いものから学ぶプロセスでもあります。うまく書けません。神々が私をたくさん訂正してくれることを願っています。レンガを投げたり、翡翠を導入したりする効果が欲しいです。前回の記事には多くの良い提案がありました。誰もが教えてくれないことを願っています
元のアドレス:http://www.cnblogs.com/GuZhenYin/p/5482288.html
.NETコミュニティニュース、詳細な良い記事、WeChatでの検索dotNETクロスプラットフォームまたは、QRコードをスキャンしてフォローしてください