我刚刚在ASP.Net MVC中使用LINQ to Entities开始一个项目,我想知道是否有一个很好的,干净的方法来定义模型,为我在数据库中创建适当的表.我最熟悉Django(在MVC框架方面),我正在寻找.Net等效的models.py所以我可以将所有内容都版本化.有任何想法吗?如果它有某种形式的模式迁移,la
django-evolution等,那就更好了.
解决方法
我想你想要做的就是回答问题.实体可以从数据库自动生成,因此问题只是使用.NET机制来维护数据库模式.由于您没有使用这些其他解决方案所需的NHibernate,我建议使用
MigratorDotNet. MigratorDotNet使用与Ruby on Rails迁移完全相同的想法:
>您的数据库会跟踪其版本
>每次您希望更改架构时,您都会编写一个小类来处理升级(并且可选地,降级)
>为这些类分配执行顺序
>如果数据库不是最新的,只需按顺序执行类的升级方法
由于您只是在编译时重新生成实体,因此我建议您运行迁移脚本,然后重新生成实体,作为构建过程的一部分. MigratorDotNet已经附带an MSBuildTarget,添加它只需要几次点击.