C#在运行时更改自定义连接字符串

用户名

EF上的新功能。我正在创建用户从计算机选择数据库的应用程序。现在我想更改连接字符串以匹配数据库的位置,例如:这是当前连接字符串,它指向磁盘上某处的数据库位置(C:\ Users \ student \ Documents \ TestData.md):

add name="test" connectionString="metadata=res://*/Model2.csdl|res://*/Model2.ssdl|res://*/Model2.msl;provider=System.Data.SqlClient;provider connection string='data source=(LocalDB)\v11.0;attachdbfilename="C:\Users\student\Documents\TestData.mdf";integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework'" providerName="System.Data.EntityClient" />

现在,当用户从磁盘选择新数据库时,连接字符串需要更改为新数据库所在的位置(C:\ Users \ student \ Desktop \ NewSelectedDatabase.mdf):

add name="test" connectionString="metadata=res://*/Model2.csdl|res://*/Model2.ssdl|res://*/Model2.msl;provider=System.Data.SqlClient;provider connection string='data source=(LocalDB)\v11.0;attachdbfilename="C:\Users\student\Desktop\NewSelectedDatabase.mdf";integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework'" providerName="System.Data.EntityClient" />

现在我已经创建了文件对话框,以便用户可以选择数据库并获取其地址。我也将edmax更改为可接收自定义连接字符串:

    public partial class Tester : DbContext
{
    public Tester()
        : base("name=Test")
    {
    }

    public Tester(string customcs)
        : base(customcs)
    {

    }

现在我的问题是我该如何将自定义连接字符串传递给构造函数?我希望你能理解我,因为我真的很不懂英语,不能解释一切

杰森

当您启动EF设计器时,属性窗口上的是一个连接字符串设置。设置完所需的所有设置后,将该设置清除为无。它重写生成的代码以接受实例化时传入的连接字符串。

var mything= new dbcontext (connstring)

另一个选择是仅创建一个新的类(.cs)文件,为其提供与Tester EF上下文所属的名称空间相同的名称空间,并将其粘贴在其中:

public partial class Tester : DbContext {
    public Tester(string _connectionString) : base(ConnectionString(_connectionString)) {
        this.Configuration.ProxyCreationEnabled = false;
        this.Configuration.AutoDetectChangesEnabled = false;
    }
    private static string ConnectionString(string _connectionString) {
        EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
        entityBuilder.ProviderConnectionString = _connectionString;
        entityBuilder.Metadata = "res://*/Models.Tester.csdl|res://*/Models.Tester.ssdl|res://*/Models.Tester.msl";
        entityBuilder.Provider = "System.Data.SqlClient";
        return entityBuilder.ToString();
    }   
}

请注意,这是一个局部类(就像Tester的自动生成类一样),因此您要添加到EF生成的自动生成的类中(同样,请确保它们在相同的名称空间中,因此它确实是是部分课程的补充,而不仅仅是您自己制作自己的小孩子)。

这样,您将添加一个新的构造实例化(传递一个连接字符串),该实例化将被修改为正确的entity-connection-string构建器(通过private静态ConnectionString方法)。

var myThing = new Tester(ConfigurationManager.ConnectionStrings["db_DBName"].ToString());

我在web.config中有一行用于连接:

<add name="db_DBName" connectionString="Data Source=DBSERVER;initial Catalog=DBNAME;" providerName="System.Data.SqlClient" />

构建目标定义了它的变换,而我一直都在将相同的字符串传递给代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在运行时更改自定义视图颜色?

来自分类Dev

聚合物在运行时更改自定义样式变量

来自分类Dev

Dapper 在运行时更改连接字符串

来自分类Dev

在运行时使用连接字符串

来自分类Dev

如何在运行时更改NLog目标的连接字符串?

来自分类Dev

Azure Web服务-在运行时更改数据库连接字符串

来自分类Dev

实体框架-在运行时更改连接字符串(需要解释)

来自分类Dev

Castle和NLog在运行时更改连接字符串

来自分类Dev

在运行时更改连接字符串–这是正确的方法吗?

来自分类Dev

在EF 6中在运行时更改连接字符串

来自分类Dev

如何在运行时在EF7 Core中更改连接字符串?

来自分类Dev

Castle和NLog在运行时更改连接字符串

来自分类Dev

EF6在运行时更改连接字符串

来自分类Dev

在运行时从C#中的ArrayList生成自定义对象

来自分类Dev

更改自定义listview单击的项目运行时间的文本颜色

来自分类Dev

更改自定义listview单击的项目运行时间的文本颜色

来自分类Dev

如何在运行时将Java自定义或字符串对象添加到DAO模型对象?

来自分类Dev

使用连接字符串和精简程序时如何在运行时更改初始目录

来自分类Dev

如何在运行时在自定义视图中更改参数?

来自分类Dev

在运行时更改Django中的自定义设置变量

来自分类Dev

在运行时更改Django中的自定义设置变量

来自分类Dev

在运行时导出自定义EditorFormatDefinition

来自分类Dev

BasicAuthHttpModule自定义属性在运行时解析

来自分类Dev

添加自定义边框以在运行时查看

来自分类Dev

可以在运行时自定义FilterProvider吗?

来自分类Dev

SQLite EF6在运行时以编程方式设置连接字符串

来自分类Dev

对于每个调用,在运行时将连接字符串传递给Entity Framework

来自分类Dev

在运行时设置数据库连接字符串

来自分类Dev

实体框架在运行时设置连接字符串

Related 相关文章

  1. 1

    如何在运行时更改自定义视图颜色?

  2. 2

    聚合物在运行时更改自定义样式变量

  3. 3

    Dapper 在运行时更改连接字符串

  4. 4

    在运行时使用连接字符串

  5. 5

    如何在运行时更改NLog目标的连接字符串?

  6. 6

    Azure Web服务-在运行时更改数据库连接字符串

  7. 7

    实体框架-在运行时更改连接字符串(需要解释)

  8. 8

    Castle和NLog在运行时更改连接字符串

  9. 9

    在运行时更改连接字符串–这是正确的方法吗?

  10. 10

    在EF 6中在运行时更改连接字符串

  11. 11

    如何在运行时在EF7 Core中更改连接字符串?

  12. 12

    Castle和NLog在运行时更改连接字符串

  13. 13

    EF6在运行时更改连接字符串

  14. 14

    在运行时从C#中的ArrayList生成自定义对象

  15. 15

    更改自定义listview单击的项目运行时间的文本颜色

  16. 16

    更改自定义listview单击的项目运行时间的文本颜色

  17. 17

    如何在运行时将Java自定义或字符串对象添加到DAO模型对象?

  18. 18

    使用连接字符串和精简程序时如何在运行时更改初始目录

  19. 19

    如何在运行时在自定义视图中更改参数?

  20. 20

    在运行时更改Django中的自定义设置变量

  21. 21

    在运行时更改Django中的自定义设置变量

  22. 22

    在运行时导出自定义EditorFormatDefinition

  23. 23

    BasicAuthHttpModule自定义属性在运行时解析

  24. 24

    添加自定义边框以在运行时查看

  25. 25

    可以在运行时自定义FilterProvider吗?

  26. 26

    SQLite EF6在运行时以编程方式设置连接字符串

  27. 27

    对于每个调用,在运行时将连接字符串传递给Entity Framework

  28. 28

    在运行时设置数据库连接字符串

  29. 29

    实体框架在运行时设置连接字符串

热门标签

归档