我的应用程序如何同时使用 MS Access 数据库和 SQL Server 数据库?
Posted
技术标签:
【中文标题】我的应用程序如何同时使用 MS Access 数据库和 SQL Server 数据库?【英文标题】:How can my application use both an MS Access database and a SQL Server database at the same time? 【发布时间】:2011-01-15 05:32:13 【问题描述】:您使用了哪些策略和技术来生成需要访问多个不同数据源的数据驱动应用程序?具体来说,Microsoft Access 和 SQL Server。理想情况下,我想创建一个抽象层,对应用程序隐藏物理数据源。
像 ADO.NET Entity Framework 这样的东西是理想的,但它没有 MS Access 提供程序。是否有不同的框架或技术支持同时访问和 SQL Server 连接?
为实体框架创建一个访问提供者需要做多少工作?
【问题讨论】:
【参考方案1】:我很确定LLBLGen 支持 Access(当然,它还支持 MS SQL)。虽然它要花钱,但恕我直言,它是 .NET 的最佳 OR/M。
【讨论】:
【参考方案2】:看看 NHibernate。它有 SQL Server 和 Access(以及其他)的提供程序。
【讨论】:
【参考方案3】:据我所知,只有两种选择:
-
多个连接字符串
单个连接字符串。
在第一个场景中,您可以在中间层代码中加入来自不同来源的任何数据。在第二种情况下,您通过一个源间接访问除一个源之外的所有源。例如,您将通过 SQL Server 中的链接服务器从 Access 中检索数据。
它们各有优缺点。使用单个连接字符串当然更容易在中间层进行编码。最终它取决于两个来源的需要。例如,如果一个只是用于记录,那么两个连接字符串可能会更简单。如果需要连接等,那么根据来源使用链接服务器可能会更容易。如果其中一个来源是 Access 并且您没有使用 Access 安全性,则使用链接服务器可以正常工作,具体取决于规模。如果您使用 Access 安全性并且有不同的登录名需要访问数据库,那么使用链接服务器会很痛苦。
【讨论】:
【参考方案4】:另一种方法是在 SQL Server 中创建链接服务器,使用 SQL Server 中的视图执行连接,并完全隐藏应用程序中存在多个数据源的事实。
【讨论】:
以上是关于我的应用程序如何同时使用 MS Access 数据库和 SQL Server 数据库?的主要内容,如果未能解决你的问题,请参考以下文章
如何在保持表关系完整性的同时从 MS Access 数据输入表单添加数据