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属性の値と同じになります。だから、myUserModelの列atribute(Name)を検索し、対応するプロパティ値を取得し、それを 'FieldValue'に代入する必要があります。 myUserModelで値を見つけることができない場合は、「FieldValue」を「NA」として設定できます列の属性値に基づいてプロパティ値を取得する
プロパティの列属性(Name)値を取得する1つの方法は、プロパティ名を知っているときは以下のとおりです。
myUserModel.GetType().GetProperty("FirstName").GetCustomAttributes(typeof(System.Data.Linq.Mapping.ColumnAttribute), false).Cast<System.Data.Linq.Mapping.ColumnAttribute>().Single().Name
しかし、私の場合、プロパティ名はわかりません。 myModel1Field.FieldAlias値に基づいてプロパティを検索する必要があります。これについてどうやって行くの?提案してください。 myModel1Field.FieldAliasは「first_nameの」の場合、それの一つと
MyUserModelは性質
public class MyUserModel {
[Column(Name = "first_name", DbType = "varchar")]
public string FirstName { get; set; }
}
は今、私はfirst_nameのように列の属性(名前)とプロパティのMyUserModelで検索する必要があります。それが存在する場合、私はそれを 'FieldValue'の値に設定する必要があります。それ以外の場合、「FieldValue」を「NA」と設定します。