Chr*_*rry 8 c# database asp.net-mvc entity-framework linq-to-sql
我刚开始一个非常大的网络项目,并且真的想要做正确的事情.
到目前为止我使用的工具是
一切进展顺利,但我发现Entity Framework CodeFirst的一些内容有点粗略.
例如,我必须使用http://codefirstmembership.codeplex.com/来设置成员资格信息,作为代码首次设置的一部分.如果不得不使用第三方的话,感觉有点啰嗦.显然我应该足够1337"自己动手",但我不想在开始时咬太多.运行aspnet_regsql感觉很糟糕,每次db更新都会丢失.无论如何,让所有人都使用上面的库,这不是太糟糕.然而,脚手架似乎已经破裂.
现在,除此之外,现在看来,当我在现场环境中运行时,这些东西将成为问题.我想要在dev db和live db之间进行的任何模式更改都必须使用脚本手动管理,所以那时我不会先丢失代码点吗?
我去年一直在使用Google App Engine,并希望代码首先基本上以同样的方式工作?即,进行更改并修改实时数据.现在我假设,由于没有在app引擎中进行过严格的重构,它基本上不会对生产中的任何东西造成伤害.因此,您永远无法使用AppEngine重命名表.它总是会创建一个新表,而保留旧表.您必须手动移植数据.
所以我现在在想.为什么不先去数据库呢?我已经使用linq2sql工作了3年,并且非常适合使用db.虽然TBH我的数据库源控制策略有点......缺乏.所以我希望代码能够首先强制执行这种情况,但实际上这让我觉得我应该首先使用DB,并且要严格控制它.
我真的很感激对这种情况的任何想法,以及这与使用Nhibinate相比如何?
您正在描述的升级方案正在EF-Migrations中添加.该产品的上线版本已经上市,很快就可以作为官方支持的版本发布.
查看:https://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-automatic-migrations-walkthrough.aspx?Redirected = true
查看:http://coding.abel.nu/tag/ef-migrations/