在运行时使用EF6连接到SQL Server -部分类构造函数的问题
本文关键字:-部 Server 分类 构造函数 问题 SQL 运行时 EF6 连接 | 更新日期: 2023-09-27 17:51:18
使用这篇文章,
EF6 DBContext动态连接字符串
我已经按照上面的指令设置了我的部分类
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));
'PxxxxEntities'不包含接受1个参数的构造函数
尝试2:
public PxxxxEntities database = new PxxxxEntities.ConnectToSqlServer
("server", "Catalogue","user","pass",true);
类型名称'ConnectToSqlServer'不存在"PxxxxEntities"
(Per Crowcoder Comment)
尝试3:设置构造函数为public
public PxxxxEntities database = new PxxxxEntities(PxxxxEntities.ConnectToSqlServer
("server", "Catalogue","user","pass",true));
不能从模型转换。PxxxxEntities到'string'
(每恩)尝试4:
public PxxxxEntities database = PxxxxEntities.ConnectToSqlServer
("server", "Catalogue","user","pass",true);
附加信息:无法加载指定的元数据
有一个小的改变,
用Web.Config中的元数据更新方法中的元数据。要解析附加信息:无法加载指定的元数据
成功! !
DbContext的构造函数是private
,您有static
工厂方法ConnectToSqlServer
,但您试图调用私有构造函数。您创建类的方式没有任何问题。问题是你如何调用这个类。
public PxxxxEntities database = PxxxxEntities.ConnectToSqlServer
("server", "Catalogue","user","pass",true);