1

嘿,抱歉我的英语不好...仅使用 EF4 代码,我创建了一些 POCO 类,并且我的数据库是从中生成的。一切正常,我在表上插入了一些数据,但现在我需要在我的一个类上创建一个新属性。如果我只是创建它,应用程序会给我一个例外: {“自从创建数据库以来,支持'TestContext'上下文的模型已经更改。手动删除/更新数据库,或者使用 IDatabaseInitializer 实例调用 Database.SetInitializer。对于例如,RecreateDatabaseIfModelChanges 策略将自动删除并重新创建数据库,并可选择为其添加新数据。"}

我试图在表上手动创建字段,但它仍然在抱怨......有人知道是否有办法,如果有,我该如何手动更新数据库架构(我不想重新创建它,因为我已经有数据)来匹配模型?

4

2 回答 2

1

EF 生成部分类。因此,您可以在另一个部分类中添加新属性(字段)。

于 2010-11-01T21:52:10.747 回答
1

如果您确保新列与您的新属性完全匹配,它应该可以工作。

例如,如果您添加一个属性 NewProp

public class MyEntity
{
    [Key]
    public int Id;

    public string PropA;
    public int PropB;

    public int NewProp;

}

然后在您的数据库表 MyEntities 中,您将添加一个 int 类型的列 NewProp 不为空。

要检查添加的列是否正确,您可以做的是重命名数据库,然后让 Code-First 重新创建数据库并查看原始数据库和新数据库之间的不同之处。

于 2010-11-02T13:56:59.397 回答