首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无效列名*Id

无效列名*Id
EN

Stack Overflow用户
提问于 2016-04-12 20:42:45
回答 1查看 7.2K关注 0票数 3

我知道问题所在:我错过了一个帮助EF理解两个表之间关系的映射,但我不知道我的错误在哪里。

我有一个使用EF CF 7的Web。我可以很好地查询并获取父表数据,但是当我试图包含相关的子数据时,我得到的是无效的列错误。

我的两张桌子看起来是这样的:

代码语言:javascript
代码运行次数:0
运行
复制
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。

我的存储库查询如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
return _context.Categories.Include(i => i.SubCategories).ToList();

现在,错误是抛出me...and,我模糊地记得,它与EF连接名称有关。在这种经验中,有一个基类定义了Id,因此当我在类中定义它时,它会发生冲突,但这里不是这样的吗?

无效的列名“类别”。

所以我有谷歌,读了几篇文章,但要么我没有完全理解,要么它们不是我的问题--可能是前者。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-12 21:02:46

上面的类与我的db模式匹配,但SubCategories表有一个列CategoryId,它是父表Id列的FK。

如果您的表名为类别,但是您的FK名为CategoryId,那么您将遇到问题。不一致的多元化。

或者将FK重命名为CategoriesId,或者更好地遵循单数类名的更为常见的约定(只有集合的实例是复数的),并将表和类名更改为类别。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36583677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档