【发布时间】:2013-05-09 22:55:34
【问题描述】:
我正在尝试在我的模型上编写一个属性,只有一个 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;
}
}
【问题讨论】:
-
你打算如何在没有 DataContext 的情况下与 DB 通信?
-
EF 通常需要一个 DBContext。您是否打算保留这些集合?
-
我是模特。我可以访问 Lines 集合的属性,但由于我在模型中,所以我无法访问 SelectMany 之类的东西。我可能可以以长形式遍历集合并构建一个列表,但希望有一个更优雅的基于 linq 的解决方案。
-
如果它是
IEnumerable<T>集合,您确实可以访问SelectMany。 -
这是一个列表
。我在上面编辑了我想要实现的目标。
标签: asp.net-mvc linq entity-framework asp.net-mvc-4