C# 使用EF6在运行时连接到SQL Server-部分类构造函数的问题

C# 使用EF6在运行时连接到SQL Server-部分类构造函数的问题,c#,asp.net-mvc,entity-framework,database-connection,C#,Asp.net Mvc,Entity Framework,Database Connection,我用这篇文章找到了一些地方 我已经按照上面的说明设置了我的部分类 public partial class PxxxxEntities { private PxxxxEntities(string connectionString) : base(connectionString) { } public static PxxxxEntities ConnectToSqlServer(string host, string catalog, st

我用这篇文章找到了一些地方

我已经按照上面的说明设置了我的部分类

public partial class PxxxxEntities
{
    private PxxxxEntities(string connectionString)
        : base(connectionString)
    {
    }

    public static PxxxxEntities ConnectToSqlServer(string host, string catalog, string user, string pass, bool winAuth)
    {
        SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder
        {
            DataSource = host,
            InitialCatalog = catalog,
            PersistSecurityInfo = true,
            IntegratedSecurity = winAuth,
            MultipleActiveResultSets = true,

            UserID = user,
            Password = pass,
        };

        // assumes a connectionString name in .config of MyDbEntities
        var entityConnectionStringBuilder = new EntityConnectionStringBuilder
        {
            Provider = "System.Data.SqlClient",
            ProviderConnectionString = sqlBuilder.ConnectionString,
            Metadata = "res://*/DbModel.csdl|res://*/DbModel.ssdl|res://*/DbModel.msl",
        };

       return new PxxxxEntities(entityConnectionStringBuilder.ConnectionString);
    }
}
但是,我无法使用ConnectToSqlServer方法启动

尝试1:

public PxxxxEntities database = new PxxxxEntities(PxxxxEntities.ConnectToSqlServer
("server", "Catalogue","user","pass",true));     
“pxxxEntities”不包含接受1个参数的构造函数

尝试2:

public PxxxxEntities database = new PxxxxEntities.ConnectToSqlServer
("server", "Catalogue","user","pass",true);  
类型中不存在类型名称“ConnectToSqlServer” “PxxxxEntities”

(根据Crowcoder评论)

尝试3:将构造函数设置为public

public PxxxxEntities database = new PxxxxEntities(PxxxxEntities.ConnectToSqlServer
("server", "Catalogue","user","pass",true)); 
无法从model.pxxxenties转换为“string”

(佩恩科西) 尝试4:

public PxxxxEntities database = PxxxxEntities.ConnectToSqlServer
("server", "Catalogue","user","pass",true);
其他信息:无法加载指定的元数据

有一个小小的改变要做

使用Web.Config中的元数据更新方法中的元数据。要解析附加信息:无法加载指定的元数据


成功

您的DbContext的构造函数是
私有的
,您有一个
静态的
工厂方法
ConnectToSqlServer
,但是您试图调用私有的构造函数。创建类的方式没有问题。问题是你如何给这个班打电话

public PxxxxEntities database = PxxxxEntities.ConnectToSqlServer
("server", "Catalogue","user","pass",true);

构造函数是私有的。您应该更新代码以显示公共构造函数。现在的问题是构造函数接受字符串,但
ConnectToSqlServer()
返回
prxxxenties