【问题标题】:ConnectionString Builder in Entity Framework Core 2Entity Framework Core 2 中的 ConnectionString 生成器
【发布时间】:2018-07-31 23:00:46
【问题描述】:

我正在尝试将旧项目 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 类型或命名空间名称“实体”不存在于 命名空间“System.Data”(您是否缺少程序集引用?)

【问题讨论】:

    标签: c# entity-framework-core


    【解决方案1】:

    您可以在 Context 上设置连接。尝试覆盖 OnConfiguring 方法:

        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");
            }
        }
    

    【讨论】:

      【解决方案2】:

      这是因为 EF Core 不支持旧 EF 版本的所谓“数据库优先”方法,因此没有 edmx 文件,因此没有使用 EF 特定的连接字符串(metadata=res:...EntityConnectionStringBuilder 类没有用处。

      因此,在移植时,只需删除整个 GetEntityConnectionString 方法并改用 GetConnectionString 以及 UseSqlServerUsePgsql 和类似方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-28
        • 1970-01-01
        • 2021-11-28
        • 2020-07-30
        • 2020-11-25
        相关资源
        最近更新 更多