ストアド プロシージャを呼び出して DataTable を返す WCF サービスがあります。コンシューマーに送信する前に DataRows をカスタム オブジェクトに変換したいのですが、その方法がわかりません。ストアド プロシージャから顧客を取得したとします。簡潔に言うと、DataRow 経由の顧客は次のとおりです。
string lastName = dt.Rows[0]["LastName"].ToString();
string firstName = dt.Rows[0]["FirstName"].ToString();
string age = System.Convert.ToInt32(dt.Rows[0]["Age"].ToString());
顧客を簡単に取得できます。さて、次のように Customer オブジェクトを作成しました。
public Customer
{
public string LastName {get;set;}
public string FirstName {get;set;}
public int Age {get;set;}
}
パッケージ マネージャー コンソールから AutoMapper をロードしました。次に、次のようにパブリック静的メソッドを顧客に配置します。
public static Customer Get(DataRow dr)
{
Mapper.CreateMap<DataRow, Customer>();
return Mapper.Map<DataRow, Customer>(dr);
}
コードをステップ実行すると、Get() から返された顧客のすべてのプロパティが null です。ここで何が欠けていますか?DataRow からマップするには、カスタム拡張機能を追加する必要がありますか? これは関連していると思われるスレッドですが、特にプロパティ名が列名と同じであるため、AutoMapper はそのままでこれをサポートすると思いました。前もって感謝します。