Conris.Controls.MVC/Extensions/QueryBuider/IQueryBuilder.cs
(开头部分) 16KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Linq;
using System.Linq.Expressions;
using System.Data.Linq.SqlClient;
using System.Collections.Generic;
namespace Conris.Controls.MVC.Linq
{
public static class QueryBuilder
{
public static IQueryBuilder<T> Create<T>()
{
return new QueryBuilder<T>();
}
}
class QueryBuilder<T> : IQueryBuilder<T>
{
private Expression<Func<T, bool>> predicate;
Expression<Func<T, bool>> IQueryBuilder<T>.Expression
{
get
{
return predicate;
}
set
{
predicate = value;
}
}
public QueryBuilder()
{
predicate = PredicateBuilder.True<T>();
}
}
/// <summary>
/// 动态查询条件创建者
/// </summary>
/// <typeparam name="T"></typeparam>
public interface IQueryBuilder<T>
{
Expression<Func<T, bool>> Expression { get; set; }
}
public static class IQueryBuilderExtensions
{
/// <summary>
/// 建立 Between 查询条件,为空则不查(包括边界值)
/// </summary>
/// <typeparam name="T">实体</typeparam>
/// <param name="q">动态查询条件创建者</param>
/// <param name="property">属性</param>
/// <param name="from">开始值,可为空</param>
/// <param name="to">结束值,可为空</param>
/// <returns></returns>
public static IQueryBuilder<T> Between<T, P>(this IQueryBuilder<T> q, Expression<Func<T, P>> property, P from, P to)
{
//if (from == null || to == null)
后面还有 314 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
