2012-04-21 22 views
0

私は新しいアプリケーションアーキテクチャを構築しています。私たちはSQL Azureとしてホストされている中央のMSSQLサーバーデータベースを持っています。このデータベースには、さまざまなアプリケーションからアクセスする必要があります。そのほとんどは、WindowsでホストされているWebアプリケーションであり、そのうち2つはwinformsアプリケーションです。エンティティフレームワークと古いADO.Netを併用する

ウェブアプリケーション用のデータベースへのアクセスは、ADO.Netを使用すれば簡単です。 winformsアプリケーションの場合、wcfデータサービス技術はセキュリティのためのクライアント認証サービスと共に印象的です。

データベースアクセスの混在モードが機能するかどうかを知る必要がありますか?つまり、ADO.NetとEntityフレームワークの組み合わせを使用するアプリケーションがヒットした場合、データベースの整合性は維持されます。

ありがとうございます。

答えて

1

私たちはWCF RIAサービスを利用しています。彼らは、すぐに使えるデータアクセスレイヤーを提供する複数のクライアントタイプでうまく機能しているようです。

1

EntityFrameworkを使用してデータベースにクエリを実行すると、SaveChanges()を呼び出すまでデータがキャッシュされます。その間にデータベースが修正された(たとえば、古いADO.NETを使用している)場合、Entity Frameworkを使用しているアプリケーションによってデータベースからのデータが上書きされる危険性があります。これを防ぐには、同時実行トークンを使用する必要があります。ここにいくつかの詳細があります:http://social.technet.microsoft.com/wiki/contents/articles/3866.aspx 同時性トークンの使用を開始するときは、処理が必要な可能性のある同時実行例外を認識する必要があります。いくつかのアイデアについては、このブログ投稿http://blogs.msdn.com/b/rickandy/archive/2011/02/17/handling-optimistic-concurrency-exception-with-ef-and-mvc-3.aspxをご覧ください。 WCF Data Servicesは、並行処理にETagsを使用しますが(http://blogs.msdn.com/b/astoriateam/archive/2008/04/22/optimistic-concurrency-data-services.aspx)、ここで何もする必要はありませんWCF Data Services経由で公開されているデータベースのEFモデルで並行処理を設定します。

関連する問題