Entity framework 4 仅在EF4代码上创建数据库后更改模型
嘿,对不起,我的英语不好。。。 仅使用EF4代码,我创建了一些POCO类,并由此生成了我的数据库。一切都很好,我在表中插入了一些数据,但现在我需要在我的一个类上创建一个新属性。如果我只是创建它,应用程序会给我一个例外: {"“TestContext”上下文的支持模型在数据库创建后已更改。请手动删除/更新数据库,或使用IDatabaseInitializer实例调用database.SetInitializer。例如,RecreateDatabaseIfModelChanges策略将自动删除和重新创建数据库,并可以选择使用新da为其种子ta.“}Entity framework 4 仅在EF4代码上创建数据库后更改模型,entity-framework-4,code-first,ef4-code-only,Entity Framework 4,Code First,Ef4 Code Only,嘿,对不起,我的英语不好。。。 仅使用EF4代码,我创建了一些POCO类,并由此生成了我的数据库。一切都很好,我在表中插入了一些数据,但现在我需要在我的一个类上创建一个新属性。如果我只是创建它,应用程序会给我一个例外: {"“TestContext”上下文的支持模型在数据库创建后已更改。请手动删除/更新数据库,或使用IDatabaseInitializer实例调用database.SetInitializer。例如,RecreateDatabaseIfModelChanges策略将自动删除和重新
我试图手动创建表上的字段,但它仍在抱怨…是否有人知道是否有方法,如果有,如何手动更新数据库架构(我不想重新创建它,因为我已经有数据)以匹配模型?EF生成分部类。因此您可以添加新属性(字段)在另一个分部类中。如果您确保新列与新属性完全匹配,则它应该可以工作 例如,如果添加属性NewProp
public class MyEntity
{
[Key]
public int Id;
public string PropA;
public int PropB;
public int NewProp;
}
然后在数据库表MyEntities中,添加一个int not null类型的列NewProp
要检查您添加的列是否正确,您可以做的是重命名数据库,然后让代码先重新创建数据库,看看原始数据库和新数据库之间有什么不同。Tom,也许我没有正确地表达自己……我在更改类方面没有问题,我只使用代码(没有edmx,请参阅)。我想知道的是,如何手动更新数据库以匹配我的POCO类,因为在生成数据库后,类上的每次更改都会给我带来上述异常:/Thank Christian,我已经尝试过这样做,但问题仍然存在,因为我在数据库上使用CreateDatabaseOnlyIfNotExists而不是nulle、 SetInitializer:/-这是缺少的链接。但是您的回答给了我一个提示,我看错了地方:)