如何让实体框架在不保存对象的情况下创建/更新数据库表

Posted

技术标签:

【中文标题】如何让实体框架在不保存对象的情况下创建/更新数据库表【英文标题】:How to get Entity framework to create/update the Database table without saving an object 【发布时间】:2012-08-07 23:56:59 【问题描述】:

我正在为我的班级添加新字段,但我注意到在我保存该班级的对象之前不会创建表。这有点烦人,有没有办法强制它在 App start 时创建那个表?

【问题讨论】:

我相信除非您接触实体集,否则模型创建不会开始。同意更新/保存很烦人。我相信实体查询也会开始创建模型,这比更新或插入更不烦人。像contx.SomeEntityset.FirstOrDefault(<some simple expression>); 这样的简单查询 【参考方案1】:

你可以通过Application_Start强制初始化器

protected void Application_Start()

    Database.SetInitializer(new DropCreateDatabaseIfModelChanges<MyContext>());
    (new MyContext()).Database.Initialize(true);

【讨论】:

【参考方案2】:

我认为您可以使用存储库和工作单元模式。

Using Repository and Unit of Work patterns with Entity Framework 4.0

在IUnitOfWork接口中定义了Save方法。

public interface IUnitOfWork

    void Save();

【讨论】:

以上是关于如何让实体框架在不保存对象的情况下创建/更新数据库表的主要内容,如果未能解决你的问题,请参考以下文章