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