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

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();

【讨论】:

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

在不使用其他项目的情况下添加实体框架核心迁移

如何在不违反主键约束的情况下插入具有循环引用的实体框架

在不获取现有对象的情况下创建核心数据关系

如何在不更新具有多对多关系的子实体的情况下保留父实体?

部署和配置 ODP.NET 以在不安装实体框架的情况下工作

如何在不将数据保存到数据库的情况下更新 Gridview 行