使用Code First Migrations依据代码更新数据库结构

fmms 13年前
     <div id="news_body">     <p> ADO.NET 团队最近发布了 Code First Migrations Beta 1 for Entity Framework (EF)。该程序包已经在 <a href="/misc/goto?guid=4958317074665442668">NuGet</a> 提供,位于 EntityFramework.Migrations 名称下。</p>     <p> 应用程序开发领域中的代码先行(Code First)方法指的是先在代码中创建对象模型,然后按照模型生成数据库结构。这与“模型先行开发”类似,那种方式会使用 Visual Studio 中的 EF 设计器创建数据模型。(想要查看代码先行开发方式的实际效果,你可以访问 ADO.NET 团队的 <a href="/misc/goto?guid=4958317075463345502">EF 4.2 代码先行演练</a>。)</p>     <p> Code First Migrations 这种工具可以基于代码中所做的改变,以递增的方式更新已存的数据库结构。这可以按照自动或者手动的方式进行(微软将其称之为“带有魔力的”和“没有魔力的”迁移),采用哪种方式依赖于对模型所做出的更新的类型。能够自动完成的变更类型有:</p>     <ul>      <li>增加属性或者类</li>      <li>对属性和类重命名(想要使其正常工作,需要编写一些脚本)</li>      <li>对列(column)或者表(table)重命名,而不对属性或类重命名</li>      <li>删除属性</li>     </ul>     <p> 在任何一种情况下,执行命令 Update-Database 就会自动把变更应用到数据库结构上。</p>     <p> 对于所有其它更新,Code First Migrations 会使用 Add-Migration 命令创建变更数据库的脚本。这些迁移操作都会保存,并加上时间戳,让我们可以回滚到数据库结构的上一个版本。除了能够对数据库结构做出变更之外,迁移操作中还可以包括用于操作数据的 SQL 命令。想要提交迁移操作,你只需要再次运行 Update-Database 命令。为了对数据库进行复制,Code First Migrations 也可以使用 Update-Database 来创建 SQL 脚本:</p>     <p> <code>Update-Database –TargetDatabase:"NewDatabase" –Script</code></p>     <p> ADO.Net 团队已经提供了使用 Code First Migrations 的<a href="/misc/goto?guid=4958317076242978057">“没有魔力”</a>和<a href="/misc/goto?guid=4958317077020778350">“具有魔力的”</a>两种方法的演练,你可以从中获得更多信息。</p>     <p> 微软声称,这个 beta 版本只包含了 Code First Migrations 的 Visual Studio 实现,他们计划还要引入命令行和 MSDeploy 的版本。</p>     <p> <strong>查看英文原文:</strong><a href="/misc/goto?guid=4958317077805638081">Code First Migrations Updates Data Structure From Code</a></p>     <div id="come_from">           来自:      <a id="link_source2" href="/misc/goto?guid=4958317078587021154" target="_blank">InfoQ</a>     </div>    </div>