gpt4 book ai didi

entity-framework - Entity Framework 核心数据库在初始脚手架后首次更新?

转载 作者:行者123 更新时间:2023-12-04 02:06:59 24 4
gpt4 key购买 nike

我正在使用 Entity Framework Core,并且一直致力于实现数据库优先应用程序。最初的 Scaffold-DbContext 命令工作得很好,并且可以正确创建我的所有实体,如果没有按照我的意愿进行组织。它是一个 SQL Server 数据库,它使用架构来分解职责范围,而我并不真正关心 Scaffold 只是将它们全部放入一个文件夹的事实。

除此之外,我一直无法确定是否有办法在发生数据库更新后重新运行 Scaffold 来更新类。我能找到的最接近的是使用 -force 参数重新运行 Scaffold-DbContext 命令。但是,这也会覆盖我添加到 Context.cs 文件的任何自定义代码,例如将连接字符串指向配置值而不是硬编码。

我查看了一些类似于 this one 的其他问题,但它只谈论最初的脚手架,而不是进一步的更新。

有没有办法手动编码任何 future 的更改来做到这一点?没有它,EF Core 似乎会使数据库优先的方法变得毫无值(value)。

最佳答案

就像你自己说的...数据库优先方法的主要问题:你不应该手动更改模型并开始重命名事物等。除非你 100% 确定你的数据库不会再改变。如果您不是 100% 确定,只需使用自动生成的模型进行编码。

Re-Scaffolding 将覆盖直接在模型类中所做的任何更改,删除您更改或添加的所有内容。

但是您可以在不会被自动映射覆盖的一侧创建部分类:

public partial class TableName
{
public string Name_of_a_property
{get; set;}
}

这是将代码添加到实体的好方法,同时确保它不会被自动映射触及。只需确保局部 View 与自动生成的类具有相同的名称,一切都应该没问题。

关于entity-framework - Entity Framework 核心数据库在初始脚手架后首次更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40344526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com