未找到 DbContext 或已配置关系存储,但未指定要使用的 DbConnection 或连接字符串
DbContext Not Found or A relational store has been configured without specifying either the DbConnection or connection string to use
使用 Entity Framework 命令时(“7.0.0-beta1”)。
运行时
k ef 迁移添加 InitialCreate
我遇到了错误。
[解决方案]
我尝试将我的 Class 文件(创建 DbContext 的地方)从单独的 class 库移动到主项目,一切都按预期工作。
所以真正的问题是在单独的 Class 库中使用 DbContext 时。
我的数据库上下文文件
public class DbTables : DbContext
{
public DbSet<class_name> class_name_alias { get; set; }
private static bool _created = false;
public DbTables()
{
if (_created)
{
Database.AsRelational().ApplyMigrations();
_created = true;
}
}
protected override void OnConfiguring(DbContextOptions options)
{
options.UseSqlServer(@"Data Source=(LocalDB)\MSSQLLocalDB;Initial Catalog=app_db;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False");
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
}
}
如果您在 class 库中创建 DBContext,要创建迁移,您必须在此 class 库的 project.json 中声明 ef 命令。和 运行 这个项目的 k ef 命令。
{
"version": "1.0.0-*",
"dependencies": {
"EntityFramework.SqlServer": "7.0.0-beta1",
"EntityFramework.Commands": "7.0.0-beta1"
},
"commands": {
"ef": "EntityFramework.Commands"
},
"frameworks" : {
"aspnet50" : {
"dependencies": {
}
},
"aspnetcore50" : {
"dependencies": {
"System.Runtime": "4.0.20-beta-22231"
}
}
}
}
您必须覆盖 on OnConfiguring 方法才能设置连接字符串
protected override void OnConfiguring(DbContextOptions options)
{
options.UseSqlServer(@"Data Source=(LocalDB)\MSSQLLocalDB;Initial Catalog=app_db;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False");
}
使用 Entity Framework 命令时(“7.0.0-beta1”)。
运行时
k ef 迁移添加 InitialCreate
我遇到了错误。
[解决方案]
我尝试将我的 Class 文件(创建 DbContext 的地方)从单独的 class 库移动到主项目,一切都按预期工作。
所以真正的问题是在单独的 Class 库中使用 DbContext 时。
我的数据库上下文文件
public class DbTables : DbContext
{
public DbSet<class_name> class_name_alias { get; set; }
private static bool _created = false;
public DbTables()
{
if (_created)
{
Database.AsRelational().ApplyMigrations();
_created = true;
}
}
protected override void OnConfiguring(DbContextOptions options)
{
options.UseSqlServer(@"Data Source=(LocalDB)\MSSQLLocalDB;Initial Catalog=app_db;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False");
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
}
}
如果您在 class 库中创建 DBContext,要创建迁移,您必须在此 class 库的 project.json 中声明 ef 命令。和 运行 这个项目的 k ef 命令。
{
"version": "1.0.0-*",
"dependencies": {
"EntityFramework.SqlServer": "7.0.0-beta1",
"EntityFramework.Commands": "7.0.0-beta1"
},
"commands": {
"ef": "EntityFramework.Commands"
},
"frameworks" : {
"aspnet50" : {
"dependencies": {
}
},
"aspnetcore50" : {
"dependencies": {
"System.Runtime": "4.0.20-beta-22231"
}
}
}
}
您必须覆盖 on OnConfiguring 方法才能设置连接字符串
protected override void OnConfiguring(DbContextOptions options)
{
options.UseSqlServer(@"Data Source=(LocalDB)\MSSQLLocalDB;Initial Catalog=app_db;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False");
}