我有一个使用实体框架数据库优先风格开发的项目。我对各种Model文件进行了一些更改,现在每次在我的EDMX文件上执行“从数据库更新模型”时,这些更改都会被清除。我看到有一个Refresh选项卡,它列出了我的模型文件,但是没有办法告诉VS不刷新这些文件。我应该在这里做什么?谢谢。如何在执行“从数据库更新模型”时更新模型文件?
回答
请勿将更改直接写入.edmx类。这些类是由ef生成的。生成的类定义为partial,以便您可以在单独的物理文件中定义自己的部分类以扩展生成的功能。
这里有一个很好的例子
https://dotnetcodr.com/2015/02/18/extending-class-definitions-with-partial-classes-in-c-net/
它甚至在产生的.cs顶部声明文件
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected behavior in your application.
// Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
谢谢。该链接很有帮助。 –
我觉得你的问题的最佳答案是: 开始学习实体框架Code-First
他可能正在研究一个现有的代码库,它不允许这样做。但我绝对同意这种看法。 – Fran
如果您直接对数据库进行更改(又名现有数据库中的Code-First),Code-First不会解决此问题。 –
我希望我能。首先给我一个工作数据库。当我完成这个项目的工作时,我想我会在Code First做一个有趣的开始。它似乎更加灵活。 –
取决于你改变了什么。如果您对edmx模型进行了更改,则每次重新生成模型时都会覆盖它们。
如果您对所生成的poco-class进行了更改, Poco's是作为部分类生成的。只需创建一个子文件夹,并使用相同的类签名将您的poco扩展到单独的文件中。
同样适用于模型上下文类(yourModelName.Context.cs)。更改也应该在一个单独的文件中完成。
也许你应该尝试'Code First from database'。这会生成一个Fluent模型,更容易更改您的特定需求。尽管没有模型的图形表示。
就像你说的...它的DatabaseFirst ...所以你的模型文件将从数据库更新(不是任何其他地方...不是你),你不应该这样做......因为每一个变化都将失去当你再次从数据库更新你的模型! ...如果因为某些原因(例如添加列或(...))而改变模型,则必须从数据库中执行此操作,而不是在这里执行操作!...但如果将其更改为另一个原因,如添加验证属性或..你必须使用部分类!不要直接写在你的模型文件中。
- 1. 从模型更新数据库(模型更改时)?
- 2. 从模型更新数据库行
- 3. 如何在更新商店时更新模型数据emberjs
- 4. 从数据库更新模型时,如何更新DomainService而无需重新创建新的DomainService文件?
- 5. 从数据库更新时保留对模型的更改?
- 6. 更新数据模型
- 7. 根据新的数据库更改更新模型
- 8. 当模型包含明文数据结构时,实时更新模型更改
- 9. 如何从EF5.0模型更新数据库模式首先更改?
- 10. ASP.NET MVC:从模型内更新模型?
- 11. 从视图模型更新模型
- 12. 如何从模型,Visual Studio 2012和EF5更新数据库
- 13. 如何从MySQL数据库更新实体框架模型?
- 14. 实体框架:修改模型时如何更新数据库
- 15. 当模型更新时JTable不更新
- 16. 从数据库更新模型 - 刷新一个表
- 17. 实体框架 - 从数据库更新模型 - 新列
- 18. 更新模型后更新数据库无法正常工作
- 19. Django模型更新后端数据库更新
- 20. 如何更新模型
- 21. 如何更新模型
- 22. 如何更新linq2sql模型?
- 23. 从视图更新模型
- 24. Django的,从模型更新
- 25. 如何用`jsonb_set`在嵌入式模型模型中执行原子更新?
- 26. 如何在更新数据透视表时更新模型的'updated_at'
- 27. 在keystone.js中更新模型数据库模式
- 28. 在使用查看模型时更新数据库
- 29. 如何在数据库位置更改时更新.edmx文件(实体数据模型工具)
- 30. 更新模型4
请勿将更改直接写入.edmx类。这些类是由ef生成的。生成的类定义为部分,以便您可以在单独的物理文件中定义自己的部分类以扩展生成的功能 – Fran