BBl*_*ake 10 entity-framework ef-database-first entity-framework-core
我正在玩Entity Framework Core,我一直致力于实现Database-First应用程序.最初的Scaffold-DbContext命令工作得很好,并且如果没有按照我的意愿组织,则正确地创建我的所有实体.它是一个SQL Server数据库,它使用模式来分解责任区域,我并不真正关心Scaffold将它们全部放入一个文件夹的事实.
除此之外,我无法确定在数据库更新发生后是否有办法重新运行Scaffold来更新类.我能找到的最接近的是使用-force参数重新运行Scaffold-DbContext命令.但是,这也会覆盖我添加到Context.cs文件中的任何自定义代码,例如将连接字符串指向配置值而不是硬编码.
我已经看了几个与此类似的问题,但它只讨论了最初的脚手架,而不是进一步的更新.
有没有办法手动编码任何未来的变化来做到这一点?没有它,似乎使数据库优先的方法完全没有EF Core的价值.
就像你自己说的那样......数据库第一种方法的主要问题是:你不应该手动更改模型并开始重命名等等.除非你100%确定你的数据库不再改变.如果您不是100%确定,只需使用已自动生成的模型进行编码.
Re-Scaffolding将覆盖模型类中直接进行的任何更改,删除所有已更改或添加的内容.
但是您可以在不会被自动映射覆盖的一侧进行部分类:
public partial class TableName
{
public string Name_of_a_property
{get; set;}
}
Run Code Online (Sandbox Code Playgroud)
这是向您的实体添加代码的一个很好的小方法,同时确保它不会被自动映射触及.只需确保部分视图与自动生成的类具有相同的名称,一切都应该没问题.
| 归档时间: |
|
| 查看次数: |
5901 次 |
| 最近记录: |