List<MyModel1> myModel1 = new List<MyModel1>();
MyUserModel myUserModel = new MyUserModel();
List<MyModel2> myModel2 = new List<MyModel1>();
myModel1 = m_Service1.GetMyModelFields();
myUserModel = m_Service2.GetMyUserDetails();
myModel2 = (from myModel1Field in myModel1
select new MyModel2 { FieldCaption = myModel1Field.FieldAlias,
FieldValue = "" }).ToList<MyModel2>();
myModel1Field.FieldAliasテキストは、myUserModelのプロパティの1つのColumn属性の1つの値と同じになります。したがって、myUserModelで列atribute(Name)を検索し、対応するプロパティ値を取得して、それを「FieldValue」に割り当てる必要があります。myUserModelに値が見つからない場合は、「FieldValue」を「NA」に設定できます。
プロパティの列属性(名前)値を取得する1つの方法は、プロパティ名がわかっている場合は次のとおりです。
myUserModel.GetType().GetProperty("FirstName").GetCustomAttributes(typeof(System.Data.Linq.Mapping.ColumnAttribute), false).Cast<System.Data.Linq.Mapping.ColumnAttribute>().Single().Name
しかし、私の場合、プロパティ名はわかりません。myModel1Field.FieldAlias値に基づいてプロパティを見つける必要があります。これについて行く方法。提案してください。
そのプロパティの1つを持つMyUserModel
public class MyUserModel {
[Column(Name = "first_name", DbType = "varchar")]
public string FirstName { get; set; }
}
myModel1Field.FieldAliasが'first_name'の場合、MyUserModelでColumn属性(Name)をfirst_nameとして持つプロパティを検索する必要があります。存在する場合は、その値を「FieldValue」に設定する必要があります。それ以外の場合は、「FieldValue」を「NA」に設定します。