0

NHibernateを使用してasp.netmvcアプリケーションを開発していますが、列の行を変換する方法を知りたいクエリがありますか?

私はこのようなモデルの動的システムを持っています:

// It's a kind of metadata
public class Field
{
   public virtual long Id { get; set; }
   public virtual string Name { get; set; }
}

// the value is here with respective field
public class FieldValue
{
   public virtual long Id { get; set; }
   public virtual Field Field { get; set; }
   public virtual string Value { get; set; }
}

列がFieldオブジェクトで、値がFieldValueオブジェクトである結果を取得するにはどうすればよいですか?ViewModelを作成する必要がありますか?またはasp.netmvcでそれを行う方法は?

次のような結果を取得するためのクエリを実行できます。

ここに画像の説明を入力してください

しかし、私はこのようなクエリ(またはasp.net mvcのビューで結果を作成する方法)を実行したいと思います:

ここに画像の説明を入力してください

ありがとう

4

2 に答える 2

1

GroupBy() に慣れる必要があると思います。フィールドごとにグループ化すると、フィールドのすべての値を「グループ化」してから、次の値に移動します。擬似コードは次のようなものになります

@model IEnumerable<FieldValue>

foreach(var fields in Model.GroupBy(x=>x.Field.Name){
    <h2>fields.key</h2>
    <ul>
        foreach(var fieldValue in fields){
             <li>@fieldValue.Value</li>
        }
    </ul>
}

これは次のようにレンダリングする必要があります

フィールド 1

  • 何らかの値 1
  • いくつかの値 2

フィールド 2

  • 何らかの値 3
  • 何らかの値 4

このアプローチを使用することで、目的の出力を取得したい場合でもフォーマットを制御できます。

于 2012-07-11T13:08:34.473 に答える