//selector (rec) => new ParadigmSearchListData { Number = rec.NUMBER, Name = rec.RES_NAME };
//参数为 源数据(TSource)的字段
{
Expression<Func<TSource, TResult>> selector = null;
//(rec)
ParameterExpression param = Expression.Parameter(typeof(TSource), "rec");
//new ParadigmSearchListData
var v0 = Expression.New(typeof(TResult));
//Number
var v1 = typeof(TResult).GetProperty("Number");
//rec.NUMBER
var v2 = Expression.Property(param, typeof(TSource).GetProperty(colNumber));
//Name
var v3 = typeof(TResult).GetProperty("Name");
//rec.RES_NAME
var v4 = Expression.Property(param, typeof(TSource).GetProperty(colName));
Expression body = Expression.MemberInit(v0,
//{ Number = rec.NUMBER, Name = rec.RES_NAME }
new MemberBinding[]
{
//Number = rec.NUMBER
Expression.Bind(v1, v2),
//Name = rec.RES_NAME
Expression.Bind(v3, v4)
});
selector = (Expression<Func<TSource, TResult>>)Expression.Lambda(body, param);
return selector;
}
数据
public partial class T_MATERIAL_APPARATUS : EntityObject
{
public global::System.String RES_NAME
{
get
{
return _RES_NAME;
}
set
{
OnRES_NAMEChanging(value);
ReportPropertyChanging("RES_NAME");
_RES_NAME = StructuralObject.SetValidValue(value, false);
ReportPropertyChanged("RES_NAME");
OnRES_NAMEChanged();
}
}
}
//范例检索 显示检索到的数据的结构
public class ParadigmSearchListData
{
#region 变量
//icon")]
Image _icon;
//编号")]
string _number;
//名称")]
string _name;
//金额")]
decimal? _money;
#endregion
#region 属性
[DisplayName("icon")]
public Image Icon
{
get
{
return _icon;
}
set
{
_icon = value;
}
}
[DisplayName("编号")]
public string Number
{
get
{
return _number;
}
set
{
_number = value;
}
}
[DisplayName("名称")]
public string Name
{
get
{
return _name;
}
set
{
_name = value;
}
}
[DisplayName("金额")]
public decimal? Money
{
get
{
return _money;
}
set
{
_money = value;
}
}
#endregion
#region 构造函数
public ParadigmSearchListData()
{
}
public ParadigmSearchListData(Image icon, string number, string name, decimal? money)
{
_icon = icon;
//编号")]
_number = number;
//名称")]
_name = name;
//金额")]
_money = money;
}
#endregion
}
调用
Expression<Func<T_MATERIAL_APPARATUS, ParadigmSearchListData>> selector =
CreateSelecter<T_MATERIAL_APPARATUS, ParadigmSearchListData>("NUMBER", "RES_NAME");