Я знаю проблему ... Мне не хватает сопоставления, чтобы помочь EF понять взаимосвязь между моими двумя таблицами, но я не вижу, где моя ошибка. Я провел большую часть дня на этом ... помимо встреч ... и просто нужно быстро похлопать по лицу с отсутствующей информацией.Недопустимое имя столбца * Id
У меня есть веб-Api, использующий EF CF 7. Я могу запросить штраф и получить данные родительской таблицы, но когда я пытаюсь включить реальные дочерние данные, я получаю недопустимую ошибку столбца.
Мои две таблицы выглядеть следующим образом:
public class Categories
{
private ICollection<SubCategories> _subcat;
public int Id { get; set; }
public string Category { get; set; }
public virtual ICollection<SubCategories> SubCategories
{
get { return _subcat ?? (_subcat = new List<SubCategories>()); }
set { _subcat = value; }
}
}
public class SubCategories
{
public int Id { get; set; }
public string SubCategory { get; set; }
}
Вышеуказанные классы соответствуют моим дб схемы КРОМЕ таблица Подкатегории имеет столбец CategoryId и это FK в родительской таблице столбец Id.
Мой репозиторий запрос выглядит следующим образом:
return _context.Categories.Include(i => i.SubCategories).ToList();
Теперь ошибка бросает меня ... и я смутно помню, что он должен делать с EF конкатенации имя. В этом опыте был базовый класс, который определял Id, поэтому, когда я определил его в своем классе, он столкнулся с конфликтом, но это не так.
Недопустимое название столбца 'CategoriesId'.
Итак, у меня есть google и провел день на нескольких статьях, но либо я не понял полностью, либо они не были моей проблемой ... вероятно, первой.
Спасибо за модель, но можете ли вы включить код отображения? – Igor
Также включите свой объект DbContext! – Fals
Вы должны добавить частный конструктор и добавить эту логику внутри SubCategories = new List()) вместо того, чтобы делать это внутри блока свойств. –
Fals