我有一个现有的数据库和新的WPF项目。
1)我用Scaffold-DbContext
搭建数据库上下文并收到 DbContext.cs ,并为每个代表数据库表的实体提供一个文件。没关系。
以下是其中一个示例:
public partial class SomeEntity
{
public long SomeEntityID { get; set; }
public int SomeInt { get; set; }
}
2)我手动更新了这个实体( DbContext.cs 没有变化):
public partial class SomeEntity
{
public long SomeEntityID { get; set; }
public int SomeInt { get; set; }
public string SomeString { get; set; }
}
3)我使用了Add-Migration
命令。现在我有一个描述所需更改的迁移文件和 DbContextSnapshot.cs 。快照包含我刚刚使用SomeEntity
所做的更改。数据库未更新。
4)我使用了Update-Database
命令。更新数据库以匹配上次迁移。但我的 DbContext.cs 对DB的更改一无所知。它仍然是我在脚手架DB之后的旧版DbContext。
这样好吗?我现在应该手动更改DbContext以匹配我对我的实体所做的更改并将它们应用到数据库吗?没有'rescaffolding'的更改后,有没有办法从DB更新 DbContext.cs ? (因为,例如,实体文件中的所有注释和属性都将丢失,因为如果我再次使用Scaffold-DbContext
,它们将被替换为新的
答案 0 :(得分:1)
您必须再次运行scaffolding,但请记住生成的类是部分的,因此您可以将更改放在另一个文件中