我正在开发一个 asp.net mvc 3 应用程序。我正在使用 LINQ 从数据库中获取数据:
public object GetFieldsForDocument()
{
DocumentFieldsRepository.Context = FieldsRepository.Context;
var model = DocumentFieldsRepository.All()
.Join(FieldsRepository.All(),
df => df.FieldId,
f => f.Id,
(df, f) => df).ToList();
return model;
}
然后在我的控制器中我有这个:
List<MCS_DocumentFields> model = (List<MCS_DocumentFields>)DocumentFieldsService.GetFieldsForDocument();
model = model.Where(x => x.DocumentId == 10005)
.OrderBy(x => x.ContentTypeId)
.ThenBy(x => x.RowNo)
.ThenBy(x => x.ColumnNo)
.ToList();
我知道可以通过将 ID 传递给GetFieldsForDocument()
方法来避免这种情况,但现在还处于早期阶段,现在我只想让事情正常进行。
所以......现在我拥有MCS_DocumentFields
给定 Id 的实体的所有数据,我想将数据分开,因为它在从视图中呈现时在逻辑上是分开的。我的财产ContentType
可以是Header
, Drawing
, Body
, Footer
. 所以我希望能够分离这些部分,因为我对每种内容类型都有部分视图。所以我做了这个:
var headerItems = model.Where(c => c.ContentTypeId == 1).GroupBy(c => c.RowNo).ToList();
var drawItem = model.Where(d => d.ContentTypeId == 2).ToList();
var bodyItems = model.Where(b => b.ContentTypeId == 3).GroupBy(b => b.RowNo).ToList();
var footerItems = model.Where(f => f.ContentTypeId == 4).ToList();
但现在我需要将它组合到一个类型的数据结构中,MCS_DocumentFields
以便我可以将它传递给我的视图,然后从带有 foreach 语句的视图中使用我的部分视图显示数据。
我不确定如何将这四个部分完全结合在一起,以保持不同部分之间的分离。
现在 Visual Studio 显示这四个var
变量的类型IGrouping<Int32, MCS_DocumentFields>