我即将开始一个新项目,虽然我的团队的大部分经验是使用VS数据库项目和SSMS直接在数据库上,我们想使用EF代替。然而,由于时间的限制,我们无法在实施前充分了解EF。
乍一看,EF中的代码优先迁移似乎是一个非常有价值的工具,但是首先以代码为中心的数据库(他们似乎没有一个好名字)代码迁移似乎不是一个特性。相反,只有那些以代码优先开始的项目似乎才支持这一点。
是否有可能从数据库开始,然后(在开发过程中的某个时刻),以某种方式转换为代码优先,以便利用代码优先迁移?
您可以尝试EF Power Tools(不是一个'答案',但要尝试并记住)。
它有Reverse Engineer Code First
,它应该为您创建poco等。
然而,这是一个实验性的工具(在测试版),并有一些问题设置-但你可以给它一个尝试。
除此之外——这可能很棘手,所以你最好"早点"开始——
,但在我看来,没有什么是你不能手动传输的——在任何时候——只要你的数据库没有使用太多的"复杂功能",并依赖于一些高级场景。
请记住CF施加的一些限制(例如对于复杂的场景,不得不求助于"种子"和手动SQL,本机不支持UDF、存储过程(但您仍然可以手动指定它…),以便避免把你的数据库设计建立在这样的东西上——而不是工作的东西"代码优先"——并可能添加一些额外的手动修复需要的。
看看这篇文章(链接):
实体框架-逆向工程代码优先-覆盖更改