2012-03-14 99 views
1

我是实体框架工作代码优先/数据库优先和MVC的学生和初学者。 我正在使用第二个(DataBase First)。 我创建了我的数据库,从数据库生成模型。 我的问题是:实体框架工作数据库优先初始化

我怎么能初始化一些默认数据(数据库)? 在代码首先图案,有一种叫做seed方法:

protected override void Seed(DatabaseContext context) 

是否有使用数据库首先图案此方法的等效?

回答

1

在数据库中第一个接近该数据库已经存在这样您的应用程序不具有任何数据初始化。数据初始化仅在应用程序代码创建数据库时使用(代码优先),这不是您的情况。

您必须简单地把一些数据到数据库或者通过使用本地SQL脚本或类似SQL Server Management Studio或Visual Studio的服务器资源管理器一些数据库客户端工具。

+0

感谢回答 目标是简单地能够在启动时更新我的​​数据库,如果有这样的新表创建(通过更改我的上下文),而无需更新模型(。edmx)我的自我。 有点像使用类初始化(DropCreateDatabaseIfModelChanges)的种子方法 – user1235486 2012-03-14 16:08:36

+0

在这种情况下,请不要使用EDMX并首先使用代码。简单的数据库首先说你的应用程序不能控制你的数据库,因为它不能播种它。种子也只会改变数据库中的数据,而不是数据本身。 – 2012-03-14 16:26:08

0

是的,我使用的是Entity Framework Power Tools CTP1,您可以通过Extension Manager使用它。在创建edmx模型&安装工具右键单击项目,然后单击“反向工程师代码第一”,你会得到代码第一模型的数据库。然后你的数据库已经有你需要从codefirst创建新数据库并从你的前一个数据库中导出数据的数据。如果你有兴趣,我可以通过步骤展示它。

+0

谢谢!我是Interesed.I现在测试它,并向您发送反馈 – user1235486 2012-03-14 16:08:52

相关问题