ASP.NET データ アクセス - 推奨リソース
このトピックでは、主に Entity Framework と SQL Server を使用して、ASP.NET Web アプリケーションのデータにアクセスする方法に関するドキュメント リソースへのリンクを示します。
優れたブログ記事、stackoverflow スレッド、または役に立つその他のリンクをご存知の場合は、リンクを記載した [メールをお送り](aspnetue@microsoft.com?subject=Data Access Content Map) ください。
最終更新日: 2014 年 4 月 3 日
このトピックは、次のセクションで構成されています。
-
- Entity Framework Code First の使用
- Entity Framework の Code First Migrations の使用
- Entity Framework Database First または Model First の使用 (EF デザイナー)
- Entity Framework での関連データの読み込み (遅延読み込み、一括読み込み、明示的読み込み)
- Entity Framework のパフォーマンスの最適化
- Entity Framework アプリケーションでのコンカレンシーの処理
- Entity Framework に関する書籍
- 追加の Entity Framework リソース
ASP.NET でのデータ アクセスの概要
- データ ストレージ オプション (Windows Azure を使用した実世界のクラウド アプリの構築)。 クラウドの開発に関する電子書籍の章。 リレーショナル データベースに慣れている多くの開発者が見落としがちな代替手段として、NoSQL データベースを紹介します。 リレーショナルまたは NoSQL を選択する場合、または特定のプラットフォームを選択する場合の考慮事項に関するガイドラインを示します。
- ASP.NET データ アクセス オプション (MSDN)。 ASP.NET のリレーショナル データベースのデータ アクセス オプションの概要と、シナリオに適したプラットフォームとアクセス機構の選択方法に関するガイダンスです。
- Relational database (リレーショナル データベース)。 Wikipedia)。 リレーショナル データベースを使用していない場合は、リレーショナル データベースの用語と概念の概要について、このページを参照してください。 特に SQL Server の概要については、このトピックで後述する「SQL Server データベースの操作」を参照してください。
Entity Framework の使用
- Entity Framework 開発方法 (MSDN)。 Entity Framework 開発方法の Database First、Model First、または Code First を選択する方法に関するガイダンスです。
Entity Framework Code First の使用
次のチュートリアルでは、ダウンロード可能なサンプル アプリケーションを提供しています。
- EF 6 と MVC 5 の使用の概要。 移行と EF 6 の機能 (接続の回復性、コマンド インターセプト、非同期など) を含むさまざまな Entity Framework Code First シナリオについて説明します。 これは、EF 5/MVC 4 シリーズの更新バージョンです。 以前のシリーズには、新しいシリーズに含まれていないリポジトリと作業単位パターンに関するチュートリアルが含まれています。
- ASP.NET MVC 5 の概要。 より狭い範囲の Entity Framework Code First シナリオについて説明しますが、MVC 機能を導入するためのより包括的なジョブを実行します。
- モデル バインドと Web Forms。 Web Forms アプリケーションで Code First を使用します。
- ASP.NET 4.5 Web Forms の概要。 Code First の一部を取り上げ、Web Forms の概要を説明します。 モデル バインドを使用します。
- MVC Music Store。 メンバーシップと認可も実装する eコマース MVC 3 アプリケーションで Code First を使用します。 ここで使用する MVC バージョンと ASP.NET メンバーシップ (認証と認可) システムは古くなっています。ASP.NET メンバーシップに関する最新情報については、https://asp.net/identity を参照してください。
その他のリソース:
- Entity Framework - 既存のデータベースへの Code First。 MSDN。 既存のデータベースで Code First を使用する方法を示すビデオとチュートリアルです。
- データ デベロッパー センター - Entity Framework。 MSDN。 Entity Framework チームによって作成および保守されている Entity Framework ドキュメントのガイドについては、「作業開始」リンクを参照してください。
このトピックで後述する「Entity Framework に関する書籍」および「追加の Entity Framework リソース」も参照してください。
Entity Framework の Code First Migrations の使用
上記の Code First チュートリアルのほとんどは、移行について説明しています。 次のリソースも参照してください。
- Visual Studio を使用した ASP.NET Web デプロイ。 Code First Migrations を使用してデータベースをデプロイする方法を示す 2 部構成のチュートリアル シリーズ。
- メンバーシップ、OAuth、SQL Database を使用した安全な ASP.NET MVC 5 アプリの Windows Azure Web サイトへのデプロイ。 Microsoft Azure)。 移行を使用してメンバーシップとアプリケーション データを Azure にデプロイする方法。
- Visual Studio および ASP.NET の Web 配置の概要。 Code First Migrations を Visual Studio Web 配置機能に統合する方法の説明については、「Visual Studio でのデータベース配置の構成」セクションを参照してください。
- データ デベロッパー センター - Code First Migrations (MSDN)。 Entity Framework チームの移行に関するドキュメントです。
- Migrations スクリーンキャスト シリーズ。 EF ブログ)。 Code First Migrations の高度なトピックに関する 3 つのビデオです。
- Code First Migrations With ASP.NET Web Pages Sites (ASP.NET Web ページ サイトでの Code First Migrations)。 Mikesdotnetting ブログ)。 Visual Studio クラス ライブラリ プロジェクトにデータ コンテキストを配置して、ASP.NET Web ページ サイトで Code First Migrations を使用する方法を示します。
Entity Framework Database First または Model First の使用 (EF デザイナー)
- Entity Framework 6 Database First と MVC 5 の使用の概要。 サーバー エクスプローラーでスクリプトを実行してデータベースを作成し、Entity Framework デザイナーを使用してデータ モデルを作成します。 シンプルな CRUD Web ページを作成する方法を示します。その他のデータ処理機能については、すべての EF ワークフローで同じ DbContext API が使用されるため、Code First のチュートリアルの 1 つに従うことができます。
次のリソースは古いものです。 これらは、Entity Framework のバージョン 4.0 を使用する場合や、Web Forms アプリケーションのデータ バインドにデータ ソース コントロールを使用する場合に役立ちます。
- Entity Framework 4.0 の概要。 EntityDataSource コントロールの使用方法を示します。
- Entity Framework の継続 (ObjectDataSource コントロールの使用方法を示します。 コンカレンシー処理に関するチュートリアル、EF パフォーマンスに関するチュートリアル、EF 4.0 の新機能に関するチュートリアルが含まれています。
Entity Framework での関連データの処理 (遅延読み込み、一括読み込み、明示的読み込み)
- ASP.NET MVC アプリケーションでの Entity Framework を使用した関連データの読み取り。 Code First、MVC サンプル アプリケーション。 次に示すメソッドは、Web Forms モデル バインドと Database First ワークフローにも適用されます。
- データ デベロッパー センター - 関連エンティティの読み込み (MSDN)。 関連データの読み込みに関する Entity Framework チームのドキュメントです。
Entity Framework のパフォーマンスの最適化
- ASP.NET アプリケーションの高度な Entity Framework シナリオ。 独自の SQL ステートメントを実行するか独自のストアド プロシージャを呼び出す方法、変更検出を無効にする方法、および変更を保存するときに検証を無効にする方法を示します。
- Entity Framework 5 のパフォーマンスに関する考慮事項 (MSDN)。
- パフォーマンスに関する考慮事項 (Entity Framework) (MSDN)。
- ASP.NET Web アプリケーションでの Entity Framework を使用したパフォーマンスの最大化。 Entity Framework 4.0 に適用されます。
- このトピックで後述する ASP.NET データ アクセスの最適化に関するセクションも参照してください。
Entity Framework アプリケーションでのコンカレンシーの処理
- ASP.NET MVC アプリケーションでの Entity Framework を使用したコンカレンシーの処理。 MVC サンプル アプリケーションを使用した Code First、DbContext API です。
- データ デベロッパー センター – オプティミスティック同時実行制御のパターン (MSDN)。 Entity Framework チームのコンカレンシーに関するドキュメント。
- ASP.NET Web アプリケーションでの Entity Framework を使用したコンカレンシーの処理。 Entity Framework 4.0 に適用されます。 Web Forms のサンプル アプリケーションを使用した、Database First、ObjectContext API です。
Entity Framework に関する書籍
- 『Programming Entity Framework: DbContext (Entity Framework のプログラミング: DbContext)』 (Julie Lerman と Rowan Miller の共著)。
- 『Programming Entity Framework: Code First (Entity Framework のプログラミング: Code First)』 (Julie Lerman と Rowan Miller の共著)。
これらの書籍はどちらも最新であり、現在推奨されている手法を使用しています。 Entity Framework の概要を、インターネット上で利用可能なものよりも包括的かつわかりやすく紹介しています。 Julie Lerman によるもう 1 つの書籍である『Programming Entity Framework (Entity Framework のプログラミング)』は、より大規模で包括的ですが古く、扱っている手法の多くは Entity Framework を使用するための推奨される方法ではなくなっています。 MSDN サイトのデータ デベロッパー センター - 書籍で、Entity Framework チームが推奨する書籍の一覧も参照してください。
その他の Entity Framework リソース
- Entity Framework (ADO.NET) チーム ブログ。 最新情報と新しい拡張機能のアナウンスに関する最適なリソースの 1 つです。 その他の EF 関連のブログについては、「Entity Framework の概要」ブログロールを参照してください。
- MSDN マガジン。 Entity Framework に関連するトピックについて説明していることの多い [データ ポイント] 列を参照してください。
ASP.NET Web Forms アプリケーションのデータ バインド
Web Forms モデル バインドの使用
- モデル バインドと Web Forms。 EF Code First を使用したチュートリアル シリーズ。
- Web Forms モデル バインド第 1 部: データの選択 (Scott Guthrie のブログ)。 これらの以前のブログ記事では、現在 ItemType という名前のプロパティが ModelType と呼ばれていましたが、それ以外については、含まれている情報は有効です。
- Web Forms モデル バインド第 2 部: データのフィルタリング (Scott Guthrie のブログ)。
- Web Forms モデル バインド第 3 部: 更新と検証 (Scott Guthrie のブログ)。
- ASP.NET 4.5 Web Forms モデル バインド。 (ビデオ)。
- モデル バインド パート 1 - データの選択 (ビデオ)。
- モデル バインド パート 2 - フィルター処理 (ビデオ)。
- ASP.NET 4.5 Web Forms の概要 - データ項目と詳細の表示。
Web Forms データ ソース コントロールの使用
- データ ソース Web サーバー コントロール (MSDN)。
- Entity Framework 6 用の動的データ プロバイダーと EntityDataSource コントロールのリリースのお知らせ (Microsoft Web 開発ブログ)。
Web Forms データ バインド コントロールとデータ バインド式の使用
- モデル バインドと Web Forms。 EF Code First を使用するチュートリアル シリーズ。
- ASP.NET 4.5 Web Forms の概要 - データ項目と詳細の表示。
- 厳密に型指定されたデータ コントロール (Scott Guthrie のブログ)。
- 厳密に型指定されたデータ コントロール (ビデオ)。
- ASP.NET 4.5 Web Forms の厳密に型指定されたデータ コントロール (ビデオ)。
- データ バインド Web サーバー コントロール (MSDN)。
- データ バインド式の概要 (MSDN)。 このページでは、Eval と Bind についてのみ説明しています。Item と BindItem を含むようには更新されていません。
SQL Server データベースの操作
- SQL Server データベースの機能 (MSDN)。 さまざまな SQL Server トピックの全般的な概要については、TOC のこのトピックのエントリを参照してください。
- SQL Server のエディション (MSDN)。 使用可能な SQL Server エディションの概要です。各エディションに関する詳細情報へのリンクが含まれています)。
- ASP.NET Web アプリケーションの SQL Server 接続文字列 (MSDN)。
- ASP.NET Web アプリケーションに SQL Server Compact を使用する (MSDN)。
- Microsoft SQL Server: データベース製品のサンプル。 AdventureWorks データベースのサンプルです。
- サンプル データベースのインストール。 ここに示されているメソッドに加えて、サンプル .mdf ファイルの 1 つを Web プロジェクトの App_Data フォルダーにダウンロードし、データベースを LocalDB に変換して、LocalDB 接続文字列を作成することもできます。 その方法については、方法: LocalDB へのアップグレードに関するページを参照してください。
SQL Server Express と LocalDB の操作、および SQL Server と SQL Database 間での選択に関する以降のセクションも参照してください。
SQL Server Express LocalDB データベースの操作
- SQL Server Express 2012 LocalDB (MSDN)。 LocalDB の公式 MSDN 概要。
- ASP.NET Web アプリケーションの SQL Server 接続文字列 (MSDN)。
- 方法: LocalDB へのアップグレード (MSDN)。 以前のバージョンの SQL Server Express から LocalDB に .mdf ファイルを移行する方法です。 また、SQL Server 2012 サンプル データベースのいずれかをダウンロードする場合も、このプロセスを実行する必要があります。
- 改善された SQL Express である LocalDB の概要 (SQL Server Express ブログ)。 LocalDB が作成された理由の背景が、MSDN に記載されているよりも詳しく説明されています。
- LocalDB: 自分のデータベースがある場所 (SQL Server Express ブログ)。 LocalDB データベース ファイルの作成場所に関する情報です。
- 完全な IIS での LocalDB の使用、第 1 部: ユーザー プロファイル (SQL Server Express ブログ)。 LocalDB は IIS で動作するようには設計されていません。 この一連のブログ記事では、問題といくつかの回避策について説明します。
SQL Server Express データベースの操作
- ASP.NET Web アプリケーションの SQL Server 接続文字列 (MSDN)。 SQL Server Express で AttachDBFileName 接続文字列設定を使用する場合は、特にこのページのユーザー インスタンスのセクションを参照してください。
- ローカル SQL Server Express 2008 の所有権を取得する方法 (SQL Server Express ブログ)。 SQL Server Express インスタンスの管理者ではないため、SQL Server Express データベースを操作できないという一般的な問題があります。 既定では、SQL Server Express をインストールしたユーザーのみが管理者です。 このブログでは、コンピューターの管理者である場合に自分を SQL Server Express 管理者にする方法について説明しています。
- ASP.NET Web アプリケーションは運用環境で SQL Server Express データベースを使用できますか? (MSDN)。
Windows Azure SQL Database の操作
- メンバーシップ、OAuth、SQL Database を使用した安全な ASP.NET MVC アプリの Windows Azure Web サイトへのデプロイ (Microsoft Azure サイト)。
- SQL Database (Microsoft Azure サイト)。 入門用のチュートリアルと攻略ガイドです。
- Windows Azure SQL Database (MSDN)。 MSDN の SQL Database の目次の最上位ノードです。
- Windows Azure SQL Database 記事の索引 (Microsoft Learn サイト)。
- 一時的フォールト処理アプリケーション ブロック。 帯域幅調整によって発生する一時的なネットワーク障害と接続エラーを処理できるフレームワークです。 NuGet パッケージ: Enterprise Library 5.0 - Transient Fault Handling Application Block で使用できます。
- SQL Database と Entity Framework の概要 (MSDN)。
- Windows Azure SQL Database のコミュニティ フォーラム。
- Windows Azure SQL Database への移行 (MSDN)。 Microsoft Patterns and Practices チームによる包括的なエンドツーエンド シナリオの 1 つの章。 SQL Server から SQL Database に移行する理由と移行する方法について説明します。
- Azure SQL Database への SQL Server データベースの移行 (MSDN)。
SQL Server と Windows Azure SQL Database 間での選択
- SQL Server と Azure SQL Database の T-SQL の相違点 (Microsoft Learn サイト)。
- Windows Azure SQL Database へのデータ移行: ツールと手法 (MSDN)。 SQL Server と SQL Database を比較し、SQL Server から SQL Database に移行するタイミングに関するガイダンスを提供するセクションが含まれています。
- Azure SQL CICD のドットの接続 (Microsoft ブログ サイト)。
- SQL Server の機能の制限 (Windows Azure SQL Database) (MSDN)。
- Windows Azure Table Storage と Windows Azure SQL Database - 比較と対比 (MSDN)。 Windows Azure にデプロイするアプリケーションでは、Windows Azure Table Storage が Windows Azure SQL Database の代わりに使用される場合があります。 このトピックは、どちらを選択するかを決定するのに役立ちます。
- Windows Azure SQL Database (MSDN)。
- ガイドラインと制限事項 (Windows Azure SQL Database)
NoSQL データベース管理システムの操作
- Windows Azure Data Services (Microsoft Azure サイト)。 このページの Table Service 機能ガイドとビッグ データのセクションを参照してください。
- ストレージ テーブル、キュー、および BLOB を使用した ASP.NET 多層アプリケーション (Microsoft Azure サイト)。 Windows Azure ストレージ NoSQL テーブルを使用するダウンロード可能なサンプル アプリケーションを含むエンドツーエンドのチュートリアルです。
ASP.NET アプリケーションでの LINQ クエリの使用
- ASP.NET データ アクセス オプション (MSDN)。 LINQ の概要が含まれています。
- LINQ のトレーニング ビデオ。
- 動的 LINQ リソースへのリンクを含む ASP.NET フォーラム スレッド。
動的データ スキャフォールディングの使用
- 動的データ プロジェクト テンプレート (MSDN)。 動的データ プロジェクトを使用するタイミングに関するガイダンスです。
- ASP.NET 動的データ (MSDN)。
データ アクセスのセキュリティ保護
- ASP.NET でのデータ アクセスのセキュリティ保護 (MSDN)。
- セキュリティに関する注意事項 (Entity Framework) (MSDN)。
- 方法: データ ソース コントロールを使用するときに接続文字列をセキュリティで保護する (MSDN)。
データ アクセス パフォーマンスの最適化
- ASP.NET のパフォーマンスの概要 (MSDN)。
- ASP.NET キャッシュ (MSDN)。
- ASP.NET パフォーマンスの向上 (MSDN)。 このページの上部には "Retired Content" (廃止されたコンテンツ) という警告がありますが、ほとんどの情報はまだ妥当であり、同等の更新されたリソースはありません。
- SQL Server パフォーマンスの向上 (MSDN)。 コメントは前のリンクと同じです。
このトピックの「Entity Framework のパフォーマンスの最適化」も参照してください。
データベースの配置
- ASP.NET Web 配置 - 推奨リソース (MSDN)。
Web サービス経由でのデータ アクセス
- Web サービス経由でのデータ アクセス (MSDN)。 Web API と WCF を使用するタイミングに関するガイダンスです。
- ASP.NET Web API の概要。
- WCF Data Services (MSDN)。
その他のリソース
- ASP.NET データ アクセスの FAQ (MSDN)。
- ASP.NET Web Forms のチュートリアル - データ。 これらのチュートリアルのほとんどは比較的古いものです。実際のシナリオに適していないデータ アクセス機構に入りすぎないように、まず ASP.NET データ アクセス オプションとデータ ストレージ オプション (Windows Azure を使用した Real-World Cloud Apps の構築) に関するページをお読みください。
- ASP.NET MVC 4 コンテンツ マップ。
- ASP.NET Web ページ チュートリアル - データ。
- Visual Studio でのデータへのアクセス (MSDN)。 このコンテンツ マップに似たリンクの一覧を提供しますが、ASP.NET ではなく Visual Studio に重点を置いています。