1

从头开始从事一个全新的项目。这意味着数据模型处于不断变化之中,加倍如此,因为事情不可避免地没有像应有的那样精心计划。模型类被相当定期地创建和更改。

计划是使用最新版本的 EF,其中包含所有简洁的代码优先内容。但是我们不断地超越框架在添加或更新表格方面的限制。初始化选项似乎只允许完全删除和重新创建数据库,这并不理想。

我看过迁移。但这似乎是一把大锤来破解坚果:我们不需要详细说明每一个小的变化并使用新的迁移脚手架进行更新。

有没有更好的策略来解决这个问题?例如,我开始编写一些单元测试来使用一些测试数据预先填充其中一个上下文,但是因为这会导致整个 Db 下降并重新创建,它会导致所有其他上下文出现问题。或者也许使用自定义初始化程序为我们播种数据?我们如何在生产代码中轻松排除这些?

我们还想知道是否可能放弃代码优先并回到 EDMX 图。至少这种方式的更改会导致更新的 SQL 命令可以直接针对数据库运行。

任何建议都非常感激。

4

1 回答 1

1

我认为,恕我直言:

  • 由于数据库架构必须至少与您的模型匹配,您应该/必须详细说明每一次更改,并且代码优先迁移允许这样做并随着时间的推移跟踪更改

  • 代码优先迁移还允许为您迁移数据库模式

  • 代码优先迁移还允许您生成允许您迁移架构的 sql

由于这些原因,code first 与 edmx 方法一样好(如果不是更好的话)

请花几分钟时间来实施http://msdn.microsoft.com/en-us/data/jj591621.aspx

还有一点,总是恕我直言,在一个完美的世界中,如果您对模型的业务进行单元测试,则不需要 DAL,请使用通用集合。请注意 linq to object 与 linq to entity 的不同表现,例如区分大小写。

于 2013-07-23T10:12:22.787 回答