实体类型[名称]不是当前上下文的模型的一部分

fhn*_*eer 8 c# poco database-first entity-framework-5

我使用EF创建模型并使用DbContext 5.X生成器生成其上下文.现在我重命名了我的一个实体的类名.现在当我运行我的代码时,我得到"实体类型Student2不是当前上下文模型的一部分." 错误.

var context = new MyEntities(connectionString);
foreach(var student in context.Students)
{
    Console.WriteLine(class.Name.ToString());
}
Run Code Online (Sandbox Code Playgroud)

在我的数据上下文中.

public partial class MyEntities : DbContext
{
    public MyEntities()
        : base("name=MyEntities")
    {
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        throw new UnintentionalCodeFirstException();
    }

    // public DbSet<Student> Students { get; set; } -> Origional
    public DbSet<Student2> Student { get; set; } // I renamed Student to Student2
}
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?由于一些冲突,我需要重命名我的班级.

Sla*_*ava 13

当我在连接字符串中有错误的元数据时,我遇到了同样的问题.尝试在app.config中重新创建连接字符串.


Mik*_*Del 1

使用Add-Migration

这是示例:

Add-Migration "Muster" -ConnectionString "Data Source=.;" -ConnectionProviderName System.Data.SqlClient
Run Code Online (Sandbox Code Playgroud)

和更新数据库,如下所示:

Update-Database -ConnectionString "Data Source=.;" -ConnectionProviderName System.Data.SqlClient
Run Code Online (Sandbox Code Playgroud)

Visual Studio你可以用Package Manager Console它。作为默认项目,您应该选择您的Entity Framework项目 - 如果您有很多项目。