不使用 app.config 将连接字符串传递给 DBcontext

passing connection string to DBcontext without using app.config

我不熟悉使用 Code First 方法。如果我遗漏了一些非常基本的东西,请原谅。

我需要将连接字符串传递给 DBcontext,但我不能将该连接字符串传递给 app.config,因为我正在调用 class 本身中的一个块,它为我提供了连接字符串。

Class A : Dbcontext , IA
{
    class A() : base () 
    {
        //call to nugget for giving a connection string
        var connString=nugget.connString();
        this.Database.Connection.ConnectionString = connString;
    }

}`

这个方法正确吗?我无法在我的本地系统上测试这个。 或者我应该将 connString 传递给 base

class A() : 基础 (connString)

DbContext class 有一个构造函数,您可以在创建它的新实例时传递连接字符串。这里最好的方法是为您的 Class A 创建一个构造函数,并从外部获取您的连接字符串参数,而不是在您的 class 内部。但是,如果您确定要在 class 中使用连接字符串,至少您应该像这样将其设为可选。

    public class MyDbContext : Dbcontext , IA
    {
        public static readonly _defaultConnString = nugget.connString();

        public class MyDbContext() : base(_defaultConnString) { }

        public class MyDbContext(string connString) : base(connString) { }
    }