根据实体属性生成 LINQ的WHERE表达式
我有一个实体,假设是这样的
[EntityAttribute(And=true,Equals=true)]
public int ID { get; set; }
[EntityAttribute(And = true, Contains = true)]
public string Name { get; set; }
[EntityAttribute(And = true, Equals = true)]
public string NameEquals { get; set; }
[EntityAttribute(Range = true, RangeName = "MoneyEnd")]
public double MoneyStart { get; set; }
public double MoneyEnd { get; set; }
[EntityAttribute(Or = true, Contains = true)]
public string OrName { get; set; }
[EntityAttribute(Range = true, RangeName = "End")]
public DateTime Start { get; set; }
public DateTime End { get; set; }
属性特性
/// <summary>
/// 运算符方式 与
/// </summary>
public bool And { get; set; }
/// <summary>
/// 运算符方式 或
/// </summary>
public bool Or { get; set; }
/// <summary>
/// 数据比较方式 完全相等 类似于=
/// </summary>
public bool Equals { get; set; }
/// <summary>
/// 数据比较方式 出现过 类似于模糊查询 like
/// </summary>
public bool Contains { get; set; }
/// <summary>
/// 数据比较方式 大于等于
/// </summary>
public bool Max { get; set; }
/// <summary>
/// 数据比较方式 小于等于
/// </summary>
public bool Min { get; set; }
/// <summary>
/// 数据比较方式 范围比较 类似于字段值是 50 到 100之间的数据,也可以是时间
/// </summary>
public bool Range { get; set; }
/// <summary>
/// 数据比较方式 另一字段名称
/// </summary>
public string RangeName { get; set; }
我想弄成个共用的,用反射获取到实体的属性与值,再生成一个动态WHERE的表达式么?或者LINQ TO SQL --------------------编程问答-------------------- 可以,其实不必用属性用Expression<funt<T,U>>,然后在后面解析一下你传递过来的东西即可,具体做法可以看这里
http://www.cnblogs.com/coolcode/archive/2011/06/08/IQueryBuilder_v2.html
提供源码下载 --------------------编程问答-------------------- http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx --------------------编程问答--------------------
学习一下,可以借鉴这个 --------------------编程问答-------------------- 添加个WCF数据服务
OData使搜索,排序,分页变得无比简单
http://www.odata.org/developers/protocols/uri-conventions --------------------编程问答-------------------- Expression<Fun<T,U>> 和 dynamic-linq 都可以
http://blog.csdn.net/sandy945/article/details/5735326 --------------------编程问答-------------------- 自己顶一下,能根据实体里的成员是否为NULL,来构建表达式么?
--------------------编程问答-------------------- 自己可以用2.0做个简单的表达式
就可以实现简单的sql查询了 --------------------编程问答-------------------- http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx
http://blog.csdn.net/sandy945/article/details/5735326
猫哥和阿非推荐的例子 对你有帮助的
补充:.NET技术 , LINQ