我知道问题所在:我错过了一个帮助EF理解两个表之间关系的映射,但我不知道我的错误在哪里。
我有一个使用EF CF 7的Web。我可以很好地查询并获取父表数据,但是当我试图包含相关的子数据时,我得到的是无效的列错误。
我的两张桌子看起来是这样的:
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; }
}
上面的类与我的db模式匹配,但SubCategories表有一个列CategoryId,它是父表Id列的FK。
我的存储库查询如下所示:
return _context.Categories.Include(i => i.SubCategories).ToList();
现在,错误是抛出me...and,我模糊地记得,它与EF连接名称有关。在这种经验中,有一个基类定义了Id,因此当我在类中定义它时,它会发生冲突,但这里不是这样的吗?
无效的列名“类别”。
所以我有谷歌,读了几篇文章,但要么我没有完全理解,要么它们不是我的问题--可能是前者。
发布于 2016-04-12 13:02:46
上面的类与我的db模式匹配,但SubCategories表有一个列CategoryId,它是父表Id列的FK。
如果您的表名为类别,但是您的FK名为CategoryId,那么您将遇到问题。不一致的多元化。
或者将FK重命名为CategoriesId,或者更好地遵循单数类名的更为常见的约定(只有集合的实例是复数的),并将表和类名更改为类别。
https://stackoverflow.com/questions/36583677
复制