我即将开始一个新项目,虽然我团队的大部分经验是直接在数据库上使用 VS 数据库项目和 SSMS,但我们希望改用 EF。但是,时间限制不允许我们在实施之前花时间充分学习 EF。
乍一看,EF Code-first 中的代码优先迁移似乎是一个非常有价值的工具,但是以代码为中心的数据库优先(它们似乎没有一个好名字)代码迁移没有似乎是一个特点。相反,似乎只有以代码优先开始的项目才支持这一点。
是否可以从数据库开始,然后(在开发过程中的某个时刻)以某种方式转换为代码优先,以便利用代码优先迁移?
我即将开始一个新项目,虽然我团队的大部分经验是直接在数据库上使用 VS 数据库项目和 SSMS,但我们希望改用 EF。但是,时间限制不允许我们在实施之前花时间充分学习 EF。
乍一看,EF Code-first 中的代码优先迁移似乎是一个非常有价值的工具,但是以代码为中心的数据库优先(它们似乎没有一个好名字)代码迁移没有似乎是一个特点。相反,似乎只有以代码优先开始的项目才支持这一点。
是否可以从数据库开始,然后(在开发过程中的某个时刻)以某种方式转换为代码优先,以便利用代码优先迁移?
您可以尝试EF Power Tools(不是“答案”,而是要尝试并牢记的东西)。
它有Reverse Engineer Code First
哪些应该为您创建 POCO-s 等。
然而,它是一个实验性工具(在 Beta 版中),并且在设置上有一些问题 - 但你可以试一试。
除此之外 - 这可能很棘手,所以最好“早点”开始 -
但 IMO 没有任何东西是你不能手动传输的 - 在任何时候 - 只要你的数据库没有使用太多的“复杂”功能”并依赖于一些高级场景。
请记住 CF 施加的一些限制(例如,对于复杂的场景,必须求助于“播种”和手动 SQL,不支持 UDF,存储过程 - 但您仍然可以手动指定它......) - 这样您就可以避免将 Db 设计基于此类东西 - 而是以“代码优先方式”工作 - 并可能在需要时添加一些额外的手动修复。
并看看这篇文章(链接):
实体框架 - 逆向工程师代码优先 - 覆盖更改
http://romiller.com/2012/05/09/customizing-reverse-engineer-code-first-in-the-ef-power-tools/