【发布时间】:2016-07-19 23:10:58
【问题描述】:
目前我使用如下方法:db.GetProjectsAllowed(profileId, profOrgList, projectList)。我想将其转换为使用 IDbSet<Project>,但我不确定如何获取第二个 LINQ 查询。
public static IQueryable<Project> GetProjectsAllowed
(
this IMkpContext db,
Guid profileId,
List<Guid> profOrgIds = null,
List<Guid> projectIds = null
)
{
var projects =
(
from p in db.Project
.Include(p => p.Proposals)
.Include(p => p.RoleAssignments)
.Include("RoleAssignments.AssigneeSnapshot")
where p.IsActive
select p);
if (profOrgIds != null && profOrgIds.Any())
{
var profileIds = db.ProfileOrganization
.Where(po => po.IsActive && profOrgIds.Contains(po.OrganizationId))
.Select(po => po.ProfileId);
projects = projects.Where(p => profileIds.Contains(p.CreatedById));
}
if (projectIds != null && projectIds.Any())
projects = projects.Where(proj => projectIds.Contains(proj.ProjectId));
return projects;//.ToList();
}
我能否将其转换为使用IDbSet<Project>?
【问题讨论】:
-
当然可以,但您必须将 ProfileOrganisation 属性作为参数传递给方法。
标签: entity-framework linq extension-methods