私はインターネットを精練していますが、まだ私が探しているものが見つかりませんでした(U2とは何ですか?)。それでは、私が探しているのは、キー/バリューデータベースに格納されている辞書にpoco(Lists、nullablesなどの複合語)を解析し、モデルを元に戻す手段を直観的に解析する方法です。本質的には、MVCモデルバインダーがフォームパラメーターからモデルにマップするときに何を達成しようとしていますが、逆も同様に行うことができます。私はソースを掘り下げようとしましたが、それはコントローラのすべての依存関係を必要とし、本当にそれを望んでいません。辞書のモデル<文字列、文字列>と戻る
P.S.:ここでは例として、いくつかのソースは、私が見えるように成果を希望するもの
public class Item
{
public string Name { get; set; }
public decimal? Amount { get; set; }
public List<RowItemModel> Items { get; set; }
}
public class RowItemModel
{
public string Description { get; set; }
public decimal Amount { get; set; }
}
だからここがモデルである、とされています注:私は、境界設定のためのプレフィックスをdb - > "Item"に追加しました。
Item.Name : The Name Here
Item.Amount : 0.0
Item.Items[0].Description : Description Here
Item.Items[0].Amount : 50
Item.Items[1].Description : Second Description
あなたが見ることができるように(MVCを使用して)モデルへの結合のためのフォーム要素を作成する際に使用するよう、それはまったく同じ命名規則に従います。私が探しているのは、その辞書(辞書)からモデルにバインドして、読み込まれたモデルから辞書を生成するエレガントな方法です。
私はすでにいくつかの醜い弦の操作とその後の基本的な反射と再帰と組み合わせてこれを達成しましたが、それは私の口に悪い味を残しています。 /エレガントなソリューションをいただければ幸いです。
これを達成する理由を説明できますか? [XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)のようなものです。 –
私の使用例は次のとおりです。フォームデータをデータベースに保存する必要があります。フォームは動的なものです(広告申込情報の行を動的に追加できる請求書フォームを想像してください)。私が扱わなければならないテーブル構造は、フラットなキー/値構造体なのでリレーショナルモデルなので、コントローラが受け取ったフォームパラメータと同じ形式でデータを保存することが最善の手段だと私は考えました。読み込みと編集のために逆を行う必要があります –