C# 实体框架核心支架附加表而非上下文

C# 实体框架核心支架附加表而非上下文,c#,entity-framework-core,C#,Entity Framework Core,从Microsoft文档: 尝试从现有数据库对模型和dbcontext进行反向工程时,可以运行如下命令: Scaffold-DbContext "Server=myserver; Database=mydatabase; Integrated Security=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Entities -Tables FirstTable, SecondTable 这将根据我的连接细节创建两个模型和

从Microsoft文档:

尝试从现有数据库对模型和dbcontext进行反向工程时,可以运行如下命令:

Scaffold-DbContext "Server=myserver; Database=mydatabase; Integrated Security=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Entities -Tables FirstTable, SecondTable 
这将根据我的连接细节创建两个模型和一个dbcontext

如果我想稍后再回来添加几个表,是否可以运行相同的命令,或者使用不同的参数运行类似的命令,将不会再次创建dbcontext,因为我在最初的scaffold中已经有了这个命令

目前,我们正在一次又一次地运行该命令并每次删除上下文,或者根据数据库表手动构建任何新模型。这似乎适得其反


在EntityFramework6及以下版本中,我们只维护edmx图,但显然这不包括在EfCore中。

在EfCore中,确实不支持数据库优先设计。脚手架功能只是构建代码优先模型/上下文的一次性操作,这样您就不必为开始使用EF手工编写代码。第一次运行后,您应该转移到EF迁移,而不是脚手架来处理架构的添加/更新/删除


以下是迁移的MS文档:

在EFCore中,确实不支持数据库优先设计。脚手架功能只是构建代码优先模型/上下文的一次性操作,这样您就不必为开始使用EF手工编写代码。第一次运行后,您应该转移到EF迁移,而不是脚手架来处理架构的添加/更新/删除


以下是迁移的MS文档:

它作为请求记录在EF核心团队中,但已经挂起一段时间了


这是EF核心团队的一个请求,但已经等待了很长一段时间


您只需重新生成文件,所有生成的类都是分部类,您可以在并行分部类中实现任何自定义


EF Core Power Tools允许您只生成POCO类或DbContext。

您只需再次重新生成文件,所有生成的类都是部分类,并且您可以在Parralel部分类中实现任何自定义


EF Core Power Tools允许您仅生成POCO类或DbContext。

“EF Core中的迁移功能提供了一种增量更新数据库架构的方法,以使其与应用程序的数据模型保持同步”我的应用程序没有指定数据库的架构,这不是代码优先项目,反过来呢?我想这就是我的观点……EF Core的设计并不是为了首先支持数据库,这听起来像是你在追求的。scaffold实用程序旨在获取现有数据库,并为您创建所有必要的代码优先模型/上下文作为起点。这并不是要为EF Core提供数据库优先支持……至少这是我的理解。至于您的“应用程序不指定模式”评论,我不完全确定您的意思。你的模型/上下文定义应该被提取到它们自己的项目集中,这样你就可以单独维护它们。我连接前端的数据库10年前就存在了,我不允许更改它,有数百个表。由于我不想在一个项目开始时引入200个实体,但后来我得到了新的需求,需要添加额外的表——这让我陷入了最初描述的困境。“EF Core中的迁移功能提供了一种增量更新数据库架构的方法,以使其与应用程序的数据模型保持同步“我的应用程序不是在指定数据库的模式,这不是一个代码优先的项目,相反?我想这是我的观点……EF Core的设计不是为了支持数据库优先,这听起来像是你在追求的。scaffold实用程序旨在获取现有数据库,并为您创建所有必要的代码优先模型/上下文作为起点。这并不是要为EF Core提供数据库优先支持……至少这是我的理解。至于您的“应用程序不指定模式”评论,我不完全确定您的意思。你的模型/上下文定义应该被提取到它们自己的项目集中,这样你就可以单独维护它们。我连接前端的数据库10年前就存在了,我不允许更改它,有数百个表。由于我不想在一个项目开始时引入200个实体,但后来我得到了新的需求,需要添加额外的表——这让我陷入了最初描述的困境。