C# 实体框架核心2中的ConnectionString Builder
我正在尝试将一个旧项目c#转换为asp net core和EF core 2.0,但找不到EntityConnectionStringBuilderC# 实体框架核心2中的ConnectionString Builder,c#,entity-framework-core,C#,Entity Framework Core,我正在尝试将一个旧项目c#转换为asp net core和EF core 2.0,但找不到EntityConnectionStringBuilder public string GetEntityConnectionString(string databaseName, string metadata) { string providerName = "System.Data.SqlClient"; string providerString = GetConnectionStr
public string GetEntityConnectionString(string databaseName, string metadata)
{
string providerName = "System.Data.SqlClient";
string providerString = GetConnectionString(databaseName);
System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder entityBuilder =
new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder();
错误CS0234中不存在类型或命名空间名称“Entity”
命名空间“System.Data”(是否缺少程序集引用?)
您可以在上下文上设置连接。尝试覆盖配置方法:
public class CommonDbContext : DbContext
{
public CommonDbContext(DbContextOptions<CommonDbContext> options)
: base(options)
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("Data Source=127.0.0.1;Initial Catalog=DBName;User ID=user;Password=pwd;Connection Timeout=60");
}
}
public类CommonDbContext:DbContext
{
公共CommonDbContext(DbContextOptions选项)
:基本(选项)
{
}
配置时受保护的覆盖无效(DBContextOptions Builder Options Builder)
{
optionsBuilder.UseSqlServer(“数据源=127.0.0.1;初始目录=DBName;用户ID=User;密码=pwd;连接超时=60”);
}
}
这是因为EF Core不支持旧EF版本中已知的“数据库优先”方法,因此没有edmx文件,因此不使用EF特定的连接字符串(metadata=res:…
<此类连接字符串)。由此可知,用于创建此类连接字符串的EntityConnectionStringBuilder
类没有用处
因此,在移植时,只需删除整个GetEntityConnectionString
方法,并使用GetConnectionString
以及UseSqlServer
、UsePgsql
和类似方法