首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EF7中的多到多关系-为包含相关数据的列表选择查询

EF7中的多到多关系-为包含相关数据的列表选择查询
EN

Stack Overflow用户
提问于 2016-02-02 10:42:51
回答 1查看 1.1K关注 0票数 1

我正在构建一个博客,在内容->分类表上有以下多到多的关系。我使用了以下代码来生成EF7中的表:

代码语言:javascript
复制
public class Category
{
    public int Id { get; set; }
    public string Name { get; set; }

    public virtual ICollection<Categorization> Categorization { get; set; }
}

public class Categorization
{
    public int ContentId { get; set; }
    public Content Content { get; set; }

    public int CategoryId { get; set; }
    public Category Category { get; set; }
}

public class Content
{
    [Key]
    public int Id { get; set; }
    public string Title { get; set; }
    public string Excerpt { get; set; }
    public string Body { get; set; }

    ...

    public virtual ICollection<Categorization> Categorization { get; set; }
}

但是,当我试图加载一个类别列表(包括与EF7查询关联的内容)时(如下所示),我会得到一个错误。

代码语言:javascript
复制
categories = await _db.Categories
                      .Include(c => c.Categorization)
                      .ThenInclude(c => c.Content)
                      .OrderByDescending(c => c.Categorization.Count)
                      .ToListAsync();

这是我在调用时得到的错误页面。

处理请求时数据库操作失败。 AggregateException:发生了一个或多个错误。AggregateException:发生了一个或多个错误。AggregateException:发生了一个或多个错误。AggregateException:发生了一个或多个错误。SqlException:无效列名'Id‘。对于ApplicationDbContext Scaffold有一些挂起的模型更改,对这些更改进行了新的迁移,并从命令行将它们应用到数据库中: dnx迁移添加迁移名称dnx数据库更新

有趣的注意:当我删除这一行时

代码语言:javascript
复制
 .Include(c => c.Categorization).ThenInclude(c => c.Content)

它有时会正常工作,就像加载分类一样,但是这并不总是发生,有时分类不会加载,而且我在生成的枚举中的每个类别类中只有空引用。

EN

回答 1

Stack Overflow用户

发布于 2016-02-02 13:49:58

错误信息说明了一切。SqlException:无效列名'Id‘

您的数据库与项目中的模型不同。如果启用了数据库迁移,则运行以下命令

代码语言:javascript
复制
dnx ef migrations add [migration name] 
dnx ef database update

如果不想使用数据库迁移,则必须更新数据库中的模型以与模型匹配。

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

https://stackoverflow.com/questions/35151211

复制
相关文章

相似问题

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