Обратный инженер EF Core Power Tools создает разные атрибуты модели на разных SQL серверах - PullRequest
1 голос
/ 09 июля 2020

Я использую EF Core Power Tools для создания моей модели, выбрав EF Core Power Tools -> Reverse Enegineer в Visual Studio. Net.

Я все еще использую EF Core 2.x, поэтому я убираю галочку с первого диалогового окна, где вы можете выбрать использование EF Core 3.x.

В последнем диалоговом окне параметров я выбираю:

  • Использовать атрибуты DataAnnotation для настройки модель.
  • Настроить код, используя шаблоны Handlebars (C#).

Я использую SQL Сервер для своих баз данных.

Моя проблема в том, что созданная модель отличается, когда я запускаю инструменты в моей локальной базе данных, по сравнению с версией базы данных на другом сервере.

Разница заключается в сгенерированном классе 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 в одной базе данных и без атрибутов в другой базе данных?

1 Ответ

1 голос
/ 10 июля 2020

Как сказал @Karan, это связано с тем, что пользователь, используемый для создания лесов, не имеет dbo в качестве схемы по умолчанию.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...