我正在使用EF Core Power Tools通过在Visual Studio .Net中选择EF Core Power Tools->反向Enegineer来生成模型。
我仍在使用EF Core 2.x,因此我从第一个对话框中删除了选中标记,你可以在其中选择使用EF Core3.x。
在最后一个选项对话框中,我选择:
我正在为数据库使用SQL Server。
我的问题是,当我在本地数据库上运行工具时,生成的模型与另一台服务器上的数据库版本不同。
区别在于生成的POCO类。在我的本地数据库上,生成以下类:
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作为默认架构。
没错,这就是问题所在,其他数据库上的用户没有默认的默认方案。那么,好的问题是,为什么会这样:-)谢谢您的帮助。