2012-04-21 114 views
0

我正在构建一个新的应用程序体系结构,我需要您的建议。我们有一个作为SQL Azure托管的中央MSSQL服务器数据库。这个数据库需要从许多不同的应用程序中进行访问,其中大部分都是Windows Azure托管的Web应用程序,其中有一些是WinForms应用程序。实体框架以及普通旧ADO.Net

使用ADO.Net访问Web应用程序的数据库非常简单。对于winforms应用程序,wcf数据服务技术似乎与客户端身份验证服务一样令人印象深刻,以确保安全

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

在此先感谢。

回答

1

我们将使用WCF RIA服务。它们似乎可以很好地与多种客户端类型一起提供开箱即用的数据访问层。

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数据服务使用并发的ETag(http://blogs.msdn.com/b/astoriateam/archive/2008/04/22/optimistic-concurrency-data-services.aspx),但你可能并不需要,如果在这里做什么您在EF模型中为通过WCF数据服务公开的数据库设置并发性。