未找到DbContext或已配置關係存儲,但未指定要使用的DbConnection或連接字符串

asp.net-core asp.net-core-mvc entity-framework-core

使用實體框架命令(“7.0.0-beta1”)時。

跑步的時候

k ef migration添加InitialCreate

我收到了錯誤。

[解]

我嘗試將我的類文件(創建DbContext的位置)從單獨的類庫移動到主項目,並且所有內容都按預期工作。

所以真正的問題是在單獨的類庫中使用DbContext時。

我的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);
    }

}

一般承認的答案

如果在類庫中創建DBContext,要創建遷移,則必須在此類庫的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方法以設置連接字符串

{
    "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"
            }
        }
    }
}



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因