我刚刚在 ASP.Net MVC 中使用 LINQ to Entities 开始了一个项目,我想知道是否有一种很好、干净的方法来定义模型,为我在数据库中创建适当的表。我最熟悉 Django(就 MVC 框架而言)并且正在寻找 .Net 等价物,models.py
以便我可以对所有内容进行版本控制。有任何想法吗?如果它有某种形式的模式迁移、la django-evolution 等,那就更好了。
问问题
829 次
3 回答
6
我想你想做的就是把问题转过来。实体可以从数据库中自动生成,因此问题只是使用 .NET 机制来维护您的数据库模式。由于您没有使用这些其他解决方案所需的 NHibernate,因此我建议使用MigratorDotNet。MigratorDotNet 使用与 Ruby on Rails 迁移完全相同的想法:
- 您的数据库会跟踪其版本
- 每次您希望更改架构时,您都会编写一个小类来处理升级(以及可选的降级)
- 为这些类分配执行顺序
- 如果数据库不是最新的,只需按顺序执行类的升级方法
由于您只会在编译时重新生成实体,因此我建议您运行迁移脚本,然后重新生成实体,作为构建过程的一部分。MigratorDotNet 已经带有一个 MSBuildTarget,添加它只需要点击几下。
于 2009-05-13T14:42:27.773 回答
1
另一种选择是将 NHibernate 与FluentNhibernate一起使用,它将根据约定自动映射您的模型。您还可以覆盖映射以根据需要对其进行调整。
于 2009-05-11T19:14:05.193 回答
0
如果提供类似于 ruby on rails active record 的功能。
于 2009-05-11T17:51:23.283 回答