Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架核心2中的ConnectionString Builder_C#_Entity Framework Core - Fatal编程技术网

C# 实体框架核心2中的ConnectionString Builder

C# 实体框架核心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

我正在尝试将一个旧项目c#转换为asp net core和EF core 2.0,但找不到EntityConnectionStringBuilder

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
和类似方法