使用迁移或SQL Server数据工具进行代码优先是否更合适?


11

我已经获得建立一个新的MVC4网站的规范,起初它不会是一个太大的项目,但是我怀疑它会随着企业对它的新想法的发展而增长。

使用.NET 4.5 ASP.NET MVC4和EF,我必须在进行迁移的代码优先或Sql Server Data Tools(SSDT)之间进行选择,以处理数据库。

借助SSDT,我可以在项目中控制数据库,这是解决方案的一部分,并且可以使用dacpac文件处理从开发到生产的所有更改。我从MVC3进行代码优先的经验是,由于数据库选项有限,所以没有在开发中使用它。最终会导致在模型更改时放弃Db或手动处理Db更改。但是,我被认为不再使用MVC4迁移了,现在我可以将更新推送到Db了。

因此,我的问题是,在节省开发时间/精力的同时,还可以扩展并能够处理生产变更,哪种方法最有效。我喜欢代码优先和能够从模型生成数据库的能力,现在迁移的引入使它在生产中可行吗?

Answers:


2

我个人认为Codefirst是很好的工具,也很适合开发。如果您已经拥有生产数据库,则数据库优先开发的步骤应该是编写外部工具脚本或手动编写脚本。

该代码优先将包含在数据库版本控制系统的开发中,并提供分布式数据库开发。

起点,这是一个很好的系列:

http://coding.abel.nu/2012/02/using-entity-framework-to-create-a-database/


您是否尝试过ssdt,可以比较2?
2013年

1
是的,我在旧版SSDT中经常使用它。我看了看最新的这些链接:msdn.microsoft.com/en-us/jj650015sqlblog.com/blogs/jamie_thomson/archive/2013/03/21/...develop.com/sqlservertwelvedatatoolsblogs.msdn.com/ b / ssdt / archive / 2012/12/13 /…。我还没有尝试过数据库单元测试,但是我认为关键是要首先使用codefirst SSDT。
伽柏Plesz

我将很快阅读这些博客。我不认为代码优先和SSDT可以并存。除非您是指在开发期间使用代码优先并切换到SSDT进行生产?我会阅读您的链接!
詹姆斯

我正在做数据库开发代码优先方法。Codefirst迁移解决了安装数据库的步骤(创建新表,向现有表创建新列等)。例如,如果要创建数据库单元测试,也可以使用SSDT。如果我们要比较两个结构,也可以使用SSDT。至少,所以我用它。Codefirst的开发和部署非常好。
伽柏Plesz

从我看来,SSDT非常适合Db First,而且从您所说的内容和发布的内容来看,似乎添加到MVC4的迁移选项确实使代码优先级超越了最初的开发人员!
詹姆斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.