2

FirstName、LastName、City、State などの複数のプロパティを持つ Customer というクラスがあります。

Customer クラスには、命名などを修正するためのデータ注釈がいくつかあります。(このクラスは MVC のモデルとして使用されています)

同じフィールドを持つ EF5 エンティティに対する Linq クエリがあります。クエリ結果を次以外のクラスにマップする簡単な方法はありますか?

customer.FirstName = item.FirstName;
customer.LastName = item.LastName; 
customer.City = item.City; 
etc.....

オートマッパー (およびその他) への参照に出くわしましたが、結果とクラスの同一の性質に基づく他のオプションがあることに疑問に思っていましたか?

4

1 に答える 1

1

その時点でオブジェクトを作成している場合は、オブジェクト初期化子を使用するのがおそらく最もクリーンなコード ソリューションです。

var model = new myMvcModel()
{
    FirstName = input.FirstName,
    LastName = input.LastName,
    City = input.City
}

それ以外の場合は、Ek0nomik が提案するようにリフレクションまたは AutoMapper を使用することが、私が提案できる唯一の解決策です。

Ek0nomik のように、私は AutoMapper よりも手動で行うことを好みます。両方のオブジェクトを検査し、いくつかの足場を出力する VS マクロも作成しました。

于 2013-06-17T21:21:41.003 に答える