在运行时使用连接字符串

BKS

我已经使用数据库优先方法创建了模型。问题是我的连接字符串在运行时更改。因此,我为采用连接字符串的DBContext类添加了一个重载的构造函数。

public partial class MyDataContext: DbContext
    {
        public MyDataContext: ()
            : base("name=DbEntities")
        {
        }

        // added this overloaded contructor
        public MyDataContext: (string connectionString)
            : base(connectionString)
        {
        }

我在运行时获得的连接字符串如下所示。

Integrated Security=SSPI;Data Source=localhost\sqlexpress;initial catalog=MyDatabase;Max Pool Size=100;Min Pool Size=20;Connect Timeout=15;

但是,当我使用通过重载构造函数创建的MyDataContext运行查询时,出现以下错误。

System.Data.Entity.Infrastructure.UnintentionalCodeFirstException:上下文在代码优先模式下使用,该上下文是从EDMX文件生成的,用于数据库优先或模型优先开发。这将无法正常工作。若要解决此问题,请不要删除引发此异常的代码行。如果希望使用数据库优先或模型优先,请确保在启动项目的app.config或web.config中包含Entity Framework连接字符串。如果要创建自己的DbConnection,请确保它是EntityConnection而不是其他类型的DbConnection,并将其传递给采用DbConnection的基本DbContext构造函数之一。要了解有关代码优先,数据库优先和模型优先的更多信息,请参见此处的实体框架文档:http://go.microsoft.com/fwlink/?LinkId=394715

知道如何实现吗?

狄翁五世

您需要创建一个EntityConnectionString并将其传递给DbContext。您当前仅使用SqlConnectionString。我建议您看看EntityConnectionStringBuilder

这是一个可以用于Sql Database First方法的示例。

SqlConnectionStringBuilder sqlStringBuilder = new SqlConnectionStringBuilder();
sqlStringBuilder.Database = "database name":
sqlStringBuilder.Password = "password";
sqlStringBuilder.UserID = "userid";
// other properties

EntityConnectionStringBuilder entityStringBuilder = new EntityConnectionStringBuilder();
entityStringBuilder.ProviderConnectionString = sqlBuilder.ConnectionString;
entityStringBuilder.Provider = "System.Data.MySqlClient";
entityStringBuilder.Metadata = "resx//*/YourDbContext.csdl|resx//*/YourDbContext.ssdl|resx//*/YourDbContext.msl";

MyDbContext dbContext = new MyDbContext(entityStringBuilder.ConnectionString);

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

PyQt:在运行时转换模块字符串

来自分类Dev

尝试在运行时编辑字符串

来自分类Dev

如何在运行时使用持有其名称的字符串访问常量字符串?

来自分类Dev

使用实体框架,依赖注入,工作单元和存储库模式在运行时注入/管理更改连接字符串

来自分类Dev

在运行时使用字符串创建T且不会丢失智能感知

来自分类Dev

在运行时将字符添加到字符串末尾

来自分类Dev

Groovy字符串插值,其值仅在运行时已知

来自分类Dev

为什么必须在运行时构造字符串?

来自分类Dev

我可以在运行时通过评估字符串来创建函数吗?

来自分类Dev

如何构造函数注入仅在运行时已知的字符串?(温莎城堡)

来自分类Dev

字符串替换在运行时在Powershell脚本中不起作用

来自分类Dev

在运行时确定字符串中Java表达式的返回类型

来自分类Dev

如何在运行时将字符串转换为代码

Related 相关文章

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

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

  5. 5

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

  6. 6

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

  7. 7

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

  8. 8

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

  9. 9

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

  10. 10

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

  11. 11

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

  12. 12

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

  13. 13

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

  14. 14

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

  15. 15

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

  16. 16

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

  17. 17

    PyQt:在运行时转换模块字符串

  18. 18

    尝试在运行时编辑字符串

  19. 19

    如何在运行时使用持有其名称的字符串访问常量字符串?

  20. 20

    使用实体框架,依赖注入,工作单元和存储库模式在运行时注入/管理更改连接字符串

  21. 21

    在运行时使用字符串创建T且不会丢失智能感知

  22. 22

    在运行时将字符添加到字符串末尾

  23. 23

    Groovy字符串插值,其值仅在运行时已知

  24. 24

    为什么必须在运行时构造字符串?

  25. 25

    我可以在运行时通过评估字符串来创建函数吗?

  26. 26

    如何构造函数注入仅在运行时已知的字符串?(温莎城堡)

  27. 27

    字符串替换在运行时在Powershell脚本中不起作用

  28. 28

    在运行时确定字符串中Java表达式的返回类型

  29. 29

    如何在运行时将字符串转换为代码

热门标签

归档