EF Core Power Tools 逆向工程师在不同 SQL 服务器上的模型上创建不同的属性

EF Core Power Tools Reverse engineer create different attributes on model on different SQL servers

我正在使用 EF Core Power Tools 通过在 Visual Studio.Net.

中选择 EF Core Power Tools -> Reverse Engineerer 来生成我的模型

我仍在使用 EF Core 2.x,因此我删除了第一个对话框中的复选标记,您可以在其中选择使用 EF Core 3.x。

在最后一个选项对话框中我select:

我正在为我的数据库使用 SQL 服务器。

我的问题是,当我 运行 本地数据库上的工具与另一台服务器上的数据库版本相比时,生成的模型不同。

区别在于生成的 POCO class。 在我的本地数据库上,生成了以下 class:

public partial class ExampleTable
{
    [Key]
    public byte Id { get; set; }
    public string Tekst { get; set; }
} 

当我 运行 针对另一个数据库的工具时,代码如下所示:

[Table("ExampleTable", Schema = "dbo")]
public partial class ExampleTable
{
    [Key]
    public byte Id { get; set; }
    public string Tekst { get; set; }
}

为什么工具生成的模型在一个数据库的 dbo 表上有属性,而在另一个数据库上没有属性?

正如@Karan 所说,这是因为用于脚手架的用户没有将 dbo 作为默认架构。

https://github.com/dotnet/efcore/blob/master/src/EFCore.Design/Scaffolding/Internal/CSharpEntityTypeGenerator.cs#L174