【发布时间】:2015-12-21 13:20:30
【问题描述】:
在我的项目中,我有一些帖子,例如 News 、 Article 、 Announcement 和 ...
每个帖子都有 Permission ,例如 ID 为 1 的新闻帖子只有管理员用户可以这样做......
如果登录,我应该按用户角色显示帖子。
为此,我尝试了一些方法:
方式 1: 我添加了一个扩展方法来过滤 News,Article , ... 像这样
public static class EfExtensionMethods
{
public IEnumerable<News> Filter( IDbSet<News> dbset)
{
return (dbset.Where(...));
}
}
方式 2: 我为过滤行添加了一个方法到服务层,像这样:
public void FilterNews(IEnumerable<News> newsList)
{
var roles = _currentUserService.GetCurrentUserRoles();
if (roles.Count == 0)
{
newsList = newsList.Where(...).ToList();
}
else
{
newsList = newsList.Where(...).ToList();
}
}
在任何地方我只需要将 NewsList 列表传递给此方法即可进行过滤。 女巫一号被包围了?
有什么最好的方法吗? 我想要一种可重用且不为每个类复制的方法
【问题讨论】:
标签: c# entity-framework entity-framework-4