首先使用Entity Framework代码更新数据库模式

| Entity Framework Code First是开发新项目的绝佳框架。但是如何扩展现有数据库呢? 例如,如果我只是想向现有数据实体添加其他属性该怎么办?是否有任何“代码优先”方式可以执行此操作,或者我必须使用SQL Server Management Studio或类似工具手动添加数据库列? 到目前为止,我发现的所有内容都是如何在模式更改时从头开始重新生成整个数据库,但是我不想丢失数据。 如果我没有记错的话,那么有一个用于Ruby on Rails的工具可以生成反映新数据库更改的SQL脚本。 EF Code First中也可以使用此方法吗?     
已邀请:
我目前正在使用EntityFramework.Migrations库,该库解决了数据库模式发展的问题。它可以创建迁移类,该类生成SQL脚本以更新您的架构。 目前,它仍处于测试阶段,但我发现它很有用。不幸的是,您仍然应该生成数据迁移脚本。 您可以在这里找到更多信息。     
不幸的是,没有。当前尚无办法以EF代码优先的方式逐步建立数据库。 ADO.NET团队描述了他们正在研究的一些方法,但是这些工具尚未发布。唯一的方法是使用数据库或模型优先方法。这意味着您可以直接对数据库中的更改进行建模并继续进行编码,也可以使用EDMX模型和Database Generation Power Pack逐步构建数据库。您仍然可以通过EF 4.1中添加的新T4模板从EDMX生成“ 0”,但是您将无法定义实体类(它们将由模板创建)。     
我目前正在处理类似的问题。 我使用EF模型优先方法。我使用的是由EF sql生成的数据库项目。 基本上,我有一个正常的数据库项目,但是表sql是EF模型生成的sql。 FYI数据库项目能够在现有数据库上生成更改脚本,而不会丢失所有数据。您可以设置一个数据库项目来警告您,如果执行的更改对数据有害,并且在这种情况下不运行。 我尚未完善解决方案(更改了ef用来生成sql的SsdlToSql10.tt。使其对数据库项目更加友好!)。     
Visual Studio有一个工具架构比较。修改代码后,您可以生成数据库,然后使用“模式比较”来增量修改数据库项目或另一个数据库     

要回复问题请先登录注册