我使用了EF 6.0.2 Code First,VS 2013,MVC 5,并且从dbMigrationConfiguratino类派生了dbContext和配置类,如下所示:
public class Db : DbContext
{
public Db()
{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<Db,Migrations.Configuration -- my Derived dbMigrationConfig Classs In Migrations folder-->());
}
public DbSet<ItemCat> ItemCats { get; set; }
public DbSet<Item> Items { get; set; }
}
和
public sealed class Configuration : DbMigrationsConfiguration<Db>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
}
protected override void Seed(Db context)
{
}
}
从此处隐式refrience转换为来自任何
class-type S到任何类型T,只要S是从T。
派生的
有效。比如我的配置和DbMigrationConfiguration
但是当想要为控制器添加视图时获取错误:
Microsoft Visual Studio
错误
运行所选代码生成器时出错:
'编译'DAL.Db'类型时出错。
CS0311:“DAL.Migrations.Configuration”类型不能用作 类型参数'TMigrationsConfiguration'在泛型类型或 方法 'System.Data.Entity.MigrateDatabaseToLatestVersion'。 没有隐式引用转换 'DAL.Migrations.Configuration'来 'System.Data.Entity.Migrations.DbMigrationsConfiguration ''。
行
修改
找到这个: CS3011 Error
编辑:我弄清楚我的Db Class To:
public class Db :MigrateDatabaseToLatestVersion<DbContext,Migrations.Configuration>
{
//Database.SetInitializer(new MigrateDatabaseToLatestVersion<Db,Migrations.Configuration>());
}
并在错误编译时间之上获得相同的粗体