0

我在 C# 中使用 EF 4 和 MVC,

当我的应用程序加载时,我想加载创建一些实体以添加到我的数据库中,那么使用 EF 添加 thsi 功能的最佳位置在哪里?Global.asax在开始应用程序?

类的合理命名约定是什么... BootStrap?

谢谢

4

1 回答 1

1

如果您有现有数据库,则不应将初始化包含到您的应用程序中。如何在现有数据库中进行这项工作的唯一方法是在Application_Start. 初始化必须检查您要插入的每个实体是否存在,并且仅当实体不存在时才插入数据。因为您的数据库已经存在,所以每次重新启动应用程序时都必须运行初始化逻辑。为避免这种情况,您还需要数据库中的一些标志来标记初始化已经完成(插入的实体之一可以被视为“标志”,但前提是应用程序无法删除该实体)。

EF 通常仅在创建数据库或数据库迁移后播种数据。

编辑:如果您在测试数据库上创建测试数据,您应该对每次模型更改(或迁移)和自定义数据库初始化程序以播种数据时重新创建数据库感到满意。

于 2012-08-14T09:37:15.523 回答