使用说明
- 在 [表Service.cs] 的
GetPageData - 将示例中的 当前表 替换为实际实体类型名。
注意:如果使用了异步接口,将SummaryExpress应该放在异步GetPageDataAsync方法中
or 多字段查询
public override PageGridData<当前表> GetPageData(PageDataOptions options)
{
QueryRelativeList = (List<SearchParameters> list) =>
{
foreach (var item in list)
{
if (item.Name == "字段")
{
item.Fields = new List<string>() { "字段1", "字段2" };
// 最终效果示例:where (字段1 = value or 字段2 = value),模糊查询时同理为 like
}
}
};
return base.GetPageData(options);
}
方式 1:EF
public override PageGridData<当前表> GetPageData(PageDataOptions options)
{
System.Linq.Expressions.Expression<Func<当前表, bool>> orFilter = null;
QueryRelativeList = (List<SearchParameters> parameters) =>
{
foreach (var item in parameters)
{
if (!string.IsNullOrEmpty(item.Value))
{
if (orFilter == null && (item.Name == "TranNo" || item.Name == "SellNo"))
{
orFilter = x => false;
}
string value = item.Value;
if (item.Name == "TranNo")
{
orFilter = orFilter.Or(x => x.TranNo.Contains(value));
item.Value = null;
}
else if (item.Name == "SellNo")
{
orFilter = orFilter.Or(x => x.SellNo == value);
item.Value = null;
}
}
}
};
QueryRelativeExpression = (IQueryable<当前表> queryable) =>
{
if (orFilter != null)
{
queryable = queryable.Where(orFilter);
}
return queryable;
};
return base.GetPageData(options);
}
方式 2:原生SQL
public override PageGridData<当前表> GetPageData(PageDataOptions options)
{
QueryRelativeList = (List<SearchParameters> parameters) =>
{
string sql = null;
foreach (var item in parameters)
{
if (!string.IsNullOrEmpty(item.Value))
{
if (sql == null)
{
sql = "where 1=2";
}
string value = item.Value;
item.Value = null;
if (item.Name == "TranNo")
{
sql += $" or TranNo='{value}'";
}
else if (item.Name == "SellNo")
{
sql += $" or SellNo='{value}'";
}
}
}
if (sql != null)
{
QuerySql = "select * from 实际表名 " + sql;
}
};
return base.GetPageData(options);
}
