EntityFramework6 - Ошибка 42703: столбец Extent1 ... не найден - PullRequest
0 голосов
/ 21 сентября 2018

, поэтому я столкнулся с этой ошибкой:

"ExceptionMessage": "42703: column Extent1.Employee_mavnr does not exist"

, и после некоторых поисков в Google я все еще не могу понять точную проблему.Большинство объяснений, которые я нашел, касалось имен столбцов, и я несколько раз менял их, но они все еще не работают.

Моя база данных выглядит так

CREATE TABLE tbl_process
(
  id integer NOT NULL DEFAULT nextval('"Process_Id_seq"'::regclass),
  name text,
  description text,
  submitter text,
  created date,
  CONSTRAINT "PrimaryKey-ID" PRIMARY KEY (id)
)
CREATE TABLE v_employee
(
  mavnr text NOT NULL, -- Mitarbeiter Nummer
  vorname text,
  nachname text,
  abt text,
  email text,
  del boolean,
  CONSTRAINT employee_pkey PRIMARY KEY (mavnr)
)

И моя текущая моделькоторая генерирует эту ошибку, выглядит следующим образом:

 [Table("tbl_process", Schema = "public")]
    public class Process
    {
        [Key]
        public int id { get; set; }

        public string name { get; set; }

        public string description { get; set; }

        public DateTime created { get; set; }

        public string submitter { get; set; }

        public virtual Employee Employee { get; set; }
    }


    [Table("v_employee", Schema = "public")]
    public class Employee
    {
        [Key]
        public string mavnr { get; set; }

        public string vorname { get; set; }

        public string nachname { get; set; }

        public string abt { get; set; }

        public string email { get; set; }

        public bool del { get; set; }
    }

Запрос на сотрудников выполняется без ошибок, только ошибки в таблице процессов.Я надеюсь, что кто-то увидит, что с ним не так.

Спасибо за вашу помощь, очень признателен

Редактировать:

Столбец отправителя в таблице процессов должен ссылаться на mavnrиз таблицы сотрудников

1 Ответ

0 голосов
/ 21 сентября 2018

Как сказал @DavidG в приведенном выше комментарии, у вас есть свойство навигации, но нет свойства внешнего ключа для этой навигации.

Необходимо добавить свойство FK и пометить свойство навигации с помощью атрибута [ForeignKey ("keyname")]:

[Table("tbl_process", Schema = "public")]
public class Process
{
    [Key]
    public int id { get; set; }

    public string name { get; set; }

    public string description { get; set; }

    public DateTime created { get; set; }

    public string submitter { get; set; }

    public string mavnr { get; set; } // <-- add this foreign key

    [ForeignKey("mavnr")] // <-- decorate the navigation property like this (or is "submitter" your FK?)
    public virtual Employee Employee { get; set; }
}


[Table("v_employee", Schema = "public")]
public class Employee
{
    [Key]
    public string mavnr { get; set; }

    public string vorname { get; set; }

    public string nachname { get; set; }

    public string abt { get; set; }

    public string email { get; set; }

    public bool del { get; set; }
}
...