Entity Framework Core 2 中的 ConnectionString 生成器
Posted
技术标签:
【中文标题】Entity Framework Core 2 中的 ConnectionString 生成器【英文标题】:ConnectionString Builder in Entity Framework Core 2 【发布时间】: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”(您是否缺少程序集引用?)
【问题讨论】:
【参考方案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
以及 UseSqlServer
、UsePgsql
和类似方法。
【讨论】:
以上是关于Entity Framework Core 2 中的 ConnectionString 生成器的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Entity Framework Core 2 中播种?
在 Entity Framework Core 2.0 中执行存储过程
Entity Framework Core中更改跟踪工作原理
Entity Framework Core中更改跟踪工作原理