0

我正在尝试在我的模型上编写一个属性,只有一个 get 访问器可以返回一个集合,该集合由集合属性的每个成员包含的所有集合组成。

所以:

Document.Lines 是 Line 对象的集合。每一行都与称为相关文档的文档具有多对多关系。我希望能够从文档中的每一行访问所有相关文档的集合。有没有办法在 Linq/EF 中做到这一点?

我试图在不在模型中创建 dbContext 对象的情况下做到这一点。

长格式将是这样的:

  public List<RelatedDocument> RelatedDocuments
        {
            get
            {
                var RDs = new List<RelatedDocument>();
                foreach (var line in Lines)
                {
                    foreach (var rd in line.RelatedDocuments)
                    {
                        if (!RDs.Contains(rd))
                        {
                            RDs.Add(rd);
                        }
                    }
                }
                return RDs;
            }
        }
4

1 回答 1

1

我不太确定问题是什么;如果LinesIEnumerable<T> using System.Linq),那么不会像

var allRelated = Lines
  .SelectMany(line => line.RelatedDocuments)
  .Distinct();

够了吗?

当然,Lines它本身必须来自某个地方..

于 2013-05-10T00:00:52.857 回答