gpt4 book ai didi

c# - 无效的列名 *Id

转载 作者:行者123 更新时间:2023-11-30 20:36:53 24 4
gpt4 key购买 nike

我知道问题所在:我缺少一个映射来帮助 EF 理解我的两个表之间的关系,但我没有看到我的错误在哪里。

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

我的两张表是这样的:

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; }
}

上面的类匹配我的数据库架构 EXCEPT SubCategories 表有一个列 CategoryId,它是父表 Id 列的 FK。

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

return _context.Categories.Include(i => i.SubCategories).ToList();

现在我遇到了错误...我依稀记得它与 EF 连接名称有关。在那次经历中,有一个定义了 Id 的基类,因此当我在我的类中定义它时它会发生冲突,但这里不是这种情况?

Invalid column name 'CategoriesId'.

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

最佳答案

The above classes match my db schema EXCEPT the SubCategories table has a column CategoryId and it is a FK to the parent table Id column.

如果您的表名为 Categories,但您的 FK 名为 CategoryId,那么您就会遇到问题。不一致的多元化。

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

关于c# - 无效的列名 *Id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36583677/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com