0
我正在使用EF来生成我的模型使用Model.context.tt模板described in this post.从数据库更新时保留对模型的更改?
我的模型已生成后,我想进去,并对模型进行一些修改。我能够做到这一点,但我遇到的问题是,如果我从数据库更新模型,它将覆盖我所做的任何定制。
是否有任何方法来保留我对模型所做的更改,同时仍从数据库更新?
我正在使用EF来生成我的模型使用Model.context.tt模板described in this post.从数据库更新时保留对模型的更改?
我的模型已生成后,我想进去,并对模型进行一些修改。我能够做到这一点,但我遇到的问题是,如果我从数据库更新模型,它将覆盖我所做的任何定制。
是否有任何方法来保留我对模型所做的更改,同时仍从数据库更新?
您需要创建与名称完全相同的部分类,并在与生成的模型相同的名称空间中,然后才能修改该类,而不必在每次重新生成T4模板时都不会丢失更改。
如果您需要对原始类进行更精细的调整编辑,则必须编辑.tt模板。虽然我会高度推荐建议查看Code First(这对于现有数据库来说更可能),因为您可以完全控制类+映射。
您可能首先复制当前生成的文件并将它们用作代码优先模型的基础。
一个常见的误解是Code First不适用于现有的数据库/数据库第一个工作,因为名称。但是这是错误的。
Code先看起来对我来说这可能是一个很好的选择。从数据库优先转换到代码优先有多难?你能推荐关于这个开关的任何阅读吗? – 2015-03-03 00:19:35
另外 - 我所做的更改最终需要复制到生产数据库服务器。我假设可以从我的项目更新数据库而不丢失所有数据? – 2015-03-03 00:22:12