8,497
社区成员
发帖
与我相关
我的任务
分享
public List<TResult> TestManyTable<TResult>(Expression<Func<TableAModel, TableBModel, TResult>> resultSelector, Expression<Func<TResult, bool>> exWhere)
{
using (SysDb<TableAModel, TableBModel> db = new SysDb<TableAModel, TableBModel>(Config.DataConnString))
{
return db.Set<TableAModel>().Join(db.Set<TableBModel>(),
c => c.Id, d => d.ParentId, resultSelector).Where(exWhere).ToList();
}
}
//调用
List<dynamic> aa = jyweb.TestManyTable<dynamic>(((c, d) => new { c.Id, c.Name, ChildId = d.Id, ChildName = d.Name }),f=>(f.ChildId>1));//这里报错,提示表达式数不能包含动态操作
var bb= aa.Count;
public List<实体> GetInfo()
{
var query = from a in DbContext.table1
from b in DbContext.table2
where a.id = b.parentid
select new
{
id = a.id,
name = a.name,
childid = b.id,
parentid = b.parentid,
childname = b.name
};
return query.ToList();
}
这一段就是两表查询出来的数据,单独写成一个方法
然后在表现层判断,先调用方法
TableService ts = new TableService();
List<实体> list = ts.GetInfo();
比如你有一个name条件
if (!string.IsNullOrEmpty(name))
{
list = list.Where(p => p.name.Contains(name));
}
完毕,要什么条件再加就行