Поле «Идентификатор таблицы» автоматически добавляется к имени таблицы, которое приводит к неверному имени столбца - PullRequest
1 голос
/ 26 мая 2019

У меня есть таблица Категории с Id столбца, когда вставка происходит, показывает, что он показывает errorSqlException: Неверное имя столбца 'CategoriesId'.

 public partial class Categories
    {
        public Categories()
        {
            CategoryTabs = new HashSet<CategoryTabs>();
        }

        public int Id { get; set; }
        public string Title { get; set; }
        public int? ParentId { get; set; }
        public int? SeasonId { get; set; }
        public int? Levels { get; set; }
        public string Image { get; set; }
        public string Description { get; set; }

        public virtual Seasons Season { get; set; }
        public List<Categories> children { get; set; }
        public virtual ICollection<CategoryTabs> CategoryTabs { get; set; }
    }

 public partial class CategoryTabs
    {
        public int Id { get; set; }
        public int? CategoryId { get; set; }
        public int? TabId { get; set; }
         public virtual Categories Category { get; set; }
        public virtual Tabs Tab { get; set; }
    }

1 Ответ

1 голос
/ 26 мая 2019

CategoriesId - это условное имя для свойства / столбца «Внешний ключ», связанного с отношением «один ко многим», введенного

public List<Categories> children { get; set; }

свойством навигации по коллекции внутри сущности Categories.

Глядя на модель сущности, скорее всего, идея заключалась в том, чтобы использовать ParentId для этой цели.Поскольку он не соответствует соглашениям об именах EF Core, его необходимо отображать явно, используя либо ForeignKey аннотацию данных:

[ForeignKey(nameof(ParentId))]
public List<Categories> children { get; set; }

, либо свободный API внутри OnModelCreating переопределение:

modelBuilder.Entity<Categories>()
    .HasMany(e => e.children)
    .WithOne()
    .HasForeignKey(e => e.ParentId);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...