Code Firtst 如何设置默认查询条件

myjce 2013-05-20 10:17:17
我的所以业务实体中都有一个属性OrgCode(机构代码),我想在所有基于实体框架查询时,不用显式加入对这个字段的查询条件,而是由框架自动实现,可不可以实现?
如:

using (DBContext context = new DBContext())
{
return context.Roles.Where(r => r.OrgCode == orgCode).ToList();
}

我无需写关于OrgCode的条件:

using (DBContext context = new DBContext())
{
return context.Roles.ToList();
}

就能实现上面的等效查询
...全文
114 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
scotcn 2013-05-21
  • 打赏
  • 举报
回复
你的查询条件是如何传递的呢? 如果查询条件存在QueryString中可以参考下面的代码:
public static class EntitiesFilterHelper
{
	public static IEnumerable<T> AutoFilter<T>(this IEnumerable<T> entities)
	{
		HttpContext context = HttpContext.Current;
		if (context == null)
			throw new InvalidOperationException();

		NameValueCollection queryString = context.Request.QueryString;
		string[] queryKeys = queryString.AllKeys;
		foreach (string key in queryKeys)
		{
			PropertyInfo property = typeof(T).GetProperty(key, BindingFlags.Public | BindingFlags.Instance);
			if (property == null)
				continue;
			entities = entities.Where(e =>
			{
				return property.GetValue(e, null).ToString() == queryString[key];
			});
		}

		return entities;
	}
}
可以按下面的方法调用: return context.Roles.ToList().AutoFilter(); 以上代码仅代表一种思路,所以仅供参考。

17,747

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧