私は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()
非常に初期の段階であり、今のところ機能させたいだけです。
だから...特定のIDのエンティティからのすべてのデータを取得したMCS_DocumentFields
ので、ビューからレンダリングされるときに論理的に分離されるため、データを分離したいと思います。私は、、、、のプロパティを持って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();
しかし、これを 1 つのタイプのデータ構造に結合しMCS_DocumentFields
て、ビューに渡し、ビューから foreach ステートメントを使用して、部分ビューを使用してデータを表示できるようにする必要があります。
これらの 4 つのパーツを 1 つに組み合わせて、異なるパーツ間の分離を維持する方法が正確にわかりません。
Visual Studio は、4 つのvar
変数がIGrouping<Int32, MCS_DocumentFields>