3
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属性之一的列属性的一个值。所以我必须在myUserModel中搜索列属性(Name)并获取相应的属性值并将其赋值给'FieldValue'。如果我在myUserModel中找不到值,我可以将“FieldValue”设置为“NA”获得属性值
获取属性的列属性(名称)值的一种方法是当我知道属性名称时。
myUserModel.GetType().GetProperty("FirstName").GetCustomAttributes(typeof(System.Data.Linq.Mapping.ColumnAttribute), false).Cast<System.Data.Linq.Mapping.ColumnAttribute>().Single().Name
但在我的情况下属性名称将不知道。我必须根据myModel1Field.FieldAlias值找到属性。如何去做这件事。请建议。
MyUserModel与它的一个特性
public class MyUserModel {
[Column(Name = "first_name", DbType = "varchar")]
public string FirstName { get; set; }
}
现在,如果myModel1Field.FieldAlias是“FIRST_NAME”,那么我在MyUserModel以搜索与列属性(名称)作为FIRST_NAME的属性。如果存在,我必须将它的值设置为'FieldValue'。否则将“FieldValue”设置为“NA”。