Visual Studio LightswitchのすべてのデモはSQL-Server を使用していますが、Visual Studio Lightswitch を使用して Oracle からデータにアクセスすることは可能ですか?
4 に答える
はい、エンティティ フレームワークのサード パーティ プロバイダーを取得できる場合。今週の VSLive で実際にこの質問をしました。
Visual Studio Lightswitch は、Entity Framework を介して Oracle データベースに永続化できます。
Oracle データ プロバイダー (ODP.Net)
Oracle の ODAC ツールには、Visual Studio アプリケーションで使用するための Oracle Data Provider (ODP.Net) が含まれています。Entity Framework 4.1 および「モデル ファースト」アプローチをサポートする Oracle の最新ドライバー。
編集:「Code-First」またはEF 4.2をサポートしているかどうかはわかりませんので、ドキュメントを確認してください。とは言っても、これは無料で Oracle によってサポートされているため、独自に展開する前に、またはオープン ソースのプロバイダー/ドライバーを使用する前に、ここから始めることを強くお勧めします。
注: 「11.2.0.2 リリース 4」はそれをカットしますが、「11.2.0.3 は」リリースされ、より安定しています。
サード パーティのドライバーを購入できます。
オープンソース プロバイダー
さらに、利用可能なオープンソースのオプションがいくつかあります - 私が Github で見つけたもの:
MSDNのチュートリアル: Lightswitch を EF 4.1 に接続する方法
Entity Framework をサポートする最新の ODAC 11.2 リリース 4 (11.2.0.3.0) を使用しましたが、正常に動作します。
このエラーが発生した場合、「内部例外メッセージ: 接続は既にローカルまたは分散トランザクションの一部です」
BScholz による 2 番目の投稿 ( https://forums.oracle.com/forums/thread.jspa?threadID=2263095 ) に従って問題を解決できます。
基本的に、Oracle データ ソースに対して SaveChanges_Excuting と SaveChanges_Excuted を実装する必要があります。
- 「ファイル ビュー」に切り替えます (デフォルトでは、LightSwitch は「論理ビュー」を表示します)。
- Server プロジェクトに「System.Transactions」への参照を追加します。
- 「論理ビュー」に戻ります
- データ ソース名を右クリックし、[コードの表示] をクリックして部分クラスを編集します。
以下のコードをコピーして貼り付けます。
private TransactionScope _tscope; partial void SaveChanges_Executing() { _tscope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted }); } partial void SaveChanges_Executed() { _tscope.Complete(); _tscope.Dispose(); }
LightSwitchトレーニングキットには、 WCFRIAサービスを介した代替データソースの使用に特化した演習があります。
あなたはそれが役に立つと思うかもしれません。