LINQ查询新对象效率问题

时间:2013-07-06 21:56:41

标签: c# linq

所以,我在.Net 4.5中编写LINQ查询时遇到了一些问题,我不确定是否有更好的方法来获取我所追求的内容。我正在尝试返回我的对象​​列表(详见下文)以及与该列表中每个项目相关联的权限列表,作为每个项目的允许操作列表。

以下是涉及的对象: enter image description here

这是我目前的疑问:

var sites = from s in _dbContext.Sites
select new FilteredSite()
{
   site = s,
   actions = (from a in _dbContext.Actions
              join ra in _dbContext.Role_actions on a.Id equals ra.Actionid
              join r in _dbContext.Roles on ra.Roleid equals r.Id
              where r.UserProfiles.Any(u => u.UserId == user.UserId) && ra.Entityid == 2
              select a).Distinct().ToList()

};

所以,我的问题归结为这一点 - 我有更好的方法来撤回这个名单吗?本质上,我的想法是,我只撤回用户有权访问的记录列表,并撤回用户之后可以对数据执行的粒度操作列表。

我创建的FilteredSite对象由一个Site和一个List组成,作为一种派生类,但我不确定没有更好的方法可以更自然地做到这一点。

有人有什么想法吗?或者这一般是在这里考虑安全性的错误方法吗?

0 个答案:

没有答案
相关问题