如何使用EF 4.1 Code First在数据库创建时运行SQL?

时间:2011-03-29 21:47:44

标签: c# entity-framework code-first entity-framework-4.1

我想在我的MVC应用程序中使用Elmah来存储错误消息,并且我想将异常存储在我的应用程序的数据库中。为此,我需要运行包含的DDL来创建Elmah表和存储过程。

但是,由于每当我的模型发生变化时都会重新创建我的开发数据库(通过EF CodeFirst),我需要在重新创建数据库时运行DDL。

我该怎么做呢?我能想到的唯一一个地方就是添加调用以在我Seed()的{​​{1}}覆盖方法中运行Sql,但这似乎不合适,因为我没有播种elmah,我正在为要创建的模式创建结构。

在数据库重新创建时应用DDL的最合适方法是什么?

1 个答案:

答案 0 :(得分:2)

使用Seed方法是在创建数据库后放置自定义SQL以执行的常用方法。它的主要目的是填充一些初始数据,但开发人员使用它来创建索引,约束等,这样你就可以放置任何你需要的东西。