Недопустимое имя столбца Entity Framework Core

#c# #entity-framework-core

#c# #entity-framework-core

Вопрос:

У меня есть следующий класс сущности:

 public partial class ProjectUser
{
        public int Id { get; set; }
        public int ProjectId { get; set; }
        public int UserId { get; set; }

        public virtual Project Project { get; set; }
        public virtual Users User { get; set; }
}
  

Когда я выполняю следующее:

 myDbContext.ProjectUser.ToList()
  

Я получаю эту ошибку:

System.Data.SqlClient.SQLException (0x80131904): недопустимое имя столбца ‘ProjectUser’

My dbcontext обладает следующим свойством:

 public virtual DbSet<ProjectUser> ProjectUser { get; set; }
  

Сценарий таблицы выглядит следующим образом.

 CREATE TABLE [dbo].[ProjectUser]
(
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [ProjectId] [int] NOT NULL,
    [UserId] [int] NOT NULL,

    CONSTRAINT [PK_ProjectUser] 
        PRIMARY KEY CLUSTERED ([Id] ASC)
                    WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, 
                          IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, 
                          ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
  

Что не так? Класс был сгенерирован с помощью строительных лесов.

Комментарии:

1. Попробуйте ProjectUsers вместо ProjectUser

2. не могли бы вы, пожалуйста, добавить контекст, который вы пытаетесь использовать. есть ли у вас свойство DbSet<ProjectUser> ProjectUser{получить; установить;}

3. не содержит определения для ProjectUsers

4. общедоступный виртуальный набор баз данных<ProjectUser> ProjectUser { получить; установить; }

5. Вероятно, ошибка, только что вызванная настройками DataAnnotations в пользовательских моделях или моделях проекта

Ответ №1:

Вероятно, ошибка только что возникла из-за DataAnnotation настроек именования в User или Project моделях.