C# 如何在模型中查询数据库?

C# 如何在模型中查询数据库?,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,注意:这是对上一个问题的完整重写 我有一个模型 class Paragraph { public int Id { get; set; } public int SectionId { get; set; } public virtual Section Section { get; set; } public int Major { get; set; } public int Option { get; set; } public ICo

注意:这是对上一个问题的完整重写

我有一个模型

class Paragraph
{
    public int Id { get; set; }

    public int SectionId { get; set; }
    public virtual Section Section { get; set; }

    public int Major { get; set; }
    public int Option { get; set; }

    public ICollection<Paragraph> Options
    {
        get
        {
            // What I'm trying to return is:
            //
            //     Section.Paragraphs
            //     .Where(p => p.Major == Major && p.Option != Option)
            //     .ToList()
        }
    }
}
关于如何做到这一点有什么建议吗?谢谢。

您希望分区属性为非空。假设您有一个Section类,该类具有List或类似类型的属性,因为您将这种情况描述为一个模型属于另一个模型


如果你认为仅仅因为你的段落包含在一个章节中,你就可以免费得到某种互惠,那你就错了。你必须自己维护这种关系。

我解决了它。呜呜!我所做的只是检查该节是否为空,如果为空,我返回一个空白列表。因此,选择权变得越来越重要


需要更多的代码。如何在“选项”集合中设置节?如果没有您试图实现的内容,就无法在此处提供帮助。在选项集合中设置节是什么意思?根据您的更新,设置节不起作用是什么意思?我遇到了与以前相同的错误,该节为空。DocumentDb.Sections是否包含节?如果是,我想知道sectionId是否指向正确的表。好的。但是,我该怎么做呢?向我们展示将段落添加到节中的代码。这可能是合乎逻辑的地方。一个章节和段落之间存在一对多的关系。我目前正在使用一个初始值设定项来填充由MVC自动处理的数据。您使用的是ORM吗?l2s、实体框架等。ORM倾向于处理这类事情,但如果您自己滚动它,则必须在将段落添加到小节的位置设置Section属性。我不知道你说的是什么意思,我目前正在使用初始值设定项来填充数据……我使用的是实体框架,实体中的初始值设定项基本上在每次构建应用程序时填充数据库。
Where(p => p.Major == Major && p.Option != Option)
    public ICollection<Paragraph> Options
    {
        get
        {
            if (Section != null)
            {
                return Section.Paragraphs
                    .Where(p => p.Major == Major && p.Option != Option)
                    .ToList();
            }
            else
            {
                return new List<Paragraph>();
            }
        }
    }