1

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

我有一个模型。

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()
        }
    }
}

它涉及one to many关系;每个Section都有很多Paragraphs。我要返回的是一个段落列表,其中它们Major与实体的相同,MajorOption不同。基本上。

Where(p => p.Major == Major && p.Option != Option)

关于如何做到这一点的任何建议?谢谢你。

4

2 回答 2

0

您希望您的Section属性不为空。大概您有一个Section具有 typeList<Paragraph>或类似属性的类,因为您将这种情况描述为一个模型“属于”另一个模型。

如果您认为仅仅因为您的段落包含在一个部分中,您将免费获得某种互惠,那您就错了。你必须自己去维护这种关系。

于 2012-05-01T00:14:26.740 回答
0

我解决了。呜呜!我所做的只是检查是否Section为空,如果是,我返回一个空白List<Paragraph>。就这样Options变成了。

    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>();
            }
        }
    }
于 2012-05-03T02:01:10.473 回答