【问题标题】:Ado.Net Entity Framework: Dynamic Database AccessAdo.Net Entity Framework:动态数据库访问
【发布时间】:2011-05-20 07:50:36
【问题描述】:

我想在应用程序中使用 Ado.Net Entity Framework。但是应用程序需要能够在运行时连接到不同的数据库(尽管具有完全相同的结构)。此外,它是一个客户端应用程序,它在本地运行。

我没有找到方法来做到这一点。有一些关于访问不同数据库的问题,但答案似乎集中在修改一些在部署应用程序时我无法执行的配置文件。

提前致谢。

【问题讨论】:

    标签: .net entity-framework ado.net


    【解决方案1】:

    您必须使用不同的连接字符串(您可以将连接字符串传递给上下文的构造函数)。您必须以某种方式定义这些连接字符串,最常见的方法是使用配置文件。如果您不想使用配置文件,用户必须在运行时指定连接文件的参数,并且您必须构建正确的连接字符串。

    此方案存在一些限制。数据库必须是:

    • 完全一样。映射表或映射列的任何单一差异都可能破坏应用程序。
    • 在相同类型的数据库服务器上运行。如果您使用 EDMX 文件,则存储在元数据中的数据库描述取决于数据库服务器。对于 SQL Server,版本(2005 或 2008)也很重要!

    【讨论】:

    • 感谢您的回答。关于 SQL Server 版本依赖的提示非常重要,并且很可能是我们使用该框架的一个亮点。我能想到的唯一解决方案是构建两个模型(一个用于 2005 年,一个用于 2008 年)并根据相关 SQL 服务器版本使用它们,如果可能的话,这将增加很多抽象。
    • EDMX 由三部分组成——SSDL、MSL 和 CSDL。您可以重用 MSL 和 CSDL,并仅定义两个不同的 SSDL,并指定正确的提供程序。然后您只需要从实体连接字符串中引用正确的文件(通常存储为资源)。
    猜你喜欢
    • 2010-12-15
    • 2020-08-18
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 2013-12-15
    相关资源
    最近更新 更多