0

我正在构建一个新的应用程序架构,我需要您的建议。我们有一个作为 SQL Azure 托管的中央 MSSQL 服务器数据库。该数据库需要从许多不同的应用程序中访问,其中大多数是托管在 Windows azure 中的 Web 应用程序,其中一些是 winforms 应用程序。

使用 ADO.Net 可以直接访问 Web 应用程序的数据库。对于 winforms 应用程序,wcf 数据服务技术与客户端身份验证服务一起用于安全性似乎令人印象深刻。

我需要知道这种混合的数据库访问模式是否可行?换句话说,如果使用 ADO.Net 和 Entity 框架的混合应用程序攻击数据库完整性,它将保持数据库完整性。

提前致谢。

4

2 回答 2

1

如果您使用 EntityFramework 查询数据库,它将缓存数据,直到您调用 SaveChanges()。如果同时修改数据库(例如使用普通的旧 ADO.NET),则存在来自数据库的数据被使用实体框架的应用程序覆盖的风险。为了防止这种情况,您需要使用并发令牌。您可以在此处找到一些详细信息: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 数据服务使用 ETags 进行并发 (http://blogs.msdn.com/b/astoriateam/archive/2008/04/22/optimistic-concurrency-data-services.aspx) 但您可能不需要在此处执行任何操作,如果您在 EF 模型中为通过 WCF 数据服务公开的数据库设置并发。

于 2012-04-21T19:38:56.323 回答
1

我们将使用 WCF RIA 服务。它们似乎适用于提供开箱即用数据访问层的多种客户端类型。

于 2012-06-08T21:52:30.133 回答