SqlException: неверное имя столбца 'ClientId1' - PullRequest
0 голосов
/ 17 апреля 2019

Получил таблицу в SQL Server с ClientId (int, внешний ключ).Запустите программу, все хорошо.Переименовал столбец в ClientID (идентификатор столицы).После импорта модели ASP.NET MVC Core

Scaffold-DbContext "Server=DESKTOP-XYZ;Database=MyDB;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force

и запуска программы я получаю сообщение об ошибке Неверное имя столбца 'ClientId1'.

  • Во всем проектеClientId1 не найден

  • Перестройка не работает

  • Добавление ClientId1 (временного) в базу данных приведет к ошибке «ClientId2» и т. Д.. ...

  • Удаление созданной базы данных не будет работать

  • Выход / запуск VS2017 не действует

  • Профилировщик SQL Server показывает оператор с «ClientId1»

Получить ошибку в простом выражении (для таблицы, в которую я внес изменение):

var projectList = await context.Project.ToListAsync();

Профилировщик SQL Server показывает

SELECT [p].[ID], [p].[ClientID], [p].[ClientId1], [p].[Description], [p].[ExpirationDate], [p].[ImageDirectory], [p].[Name], [p].[Price], [p].[Size], [p].[StartDate], [p].[StatusID], ... 
FROM [Project] AS [p]

(Правильно) сгенерированный класс Project выглядит (ClientId1 отсутствует):

...
public int Id { get; set; }
public int? ClientId { get; set; }
public string Description { get; set; }
public DateTime ExpirationDate { get; set; }
public string ImageDirectory { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
public int Size { get; set; }
public DateTime StartDate { get; set; }
public int StatusId { get; set; }
...

Как решить эту проблему, спасибо за любую помощь!

1 Ответ

1 голос
/ 17 апреля 2019

Проблема не имеет ничего общего с переименованием столбца. Примерно в то же время свойство было добавлено в НЕ сгенерированный частичный класс клиента:

public partial class Client
{
    ...
    public List<Project> ProjectList { get; set; }
    ...
}

Кажется, это смущает Линка. Требуется дополнительная [NoMapped] аннотация данных. Так что следующий код будет работать.

public partial class Client
{
    ...
    [NoMapped]
    public List<Project> ProjectList { get; set; }
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...