Derzeit verwende ich die folgende Methode wie folgt: db.GetProjectsAllowed(profileId, profOrgList, projectList)
. Ich möchte dies umwandeln, um IDbSet<Project>
zu verwenden, aber ich bin nicht sicher, wie man die zweite LINQ-Abfrage erhält.Kann ich diese Erweiterungsmethode konvertieren, um IDbSet <> anstelle von DbContext zu verwenden?
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();
}
Kann ich wandeln diese IDbSet<Project>
zu verwenden oder nicht?
Natürlich können Sie aber würden Sie muss in der ProfilOrganisation p übergeben Eigenschaft als Parameter der Methode. – user2697817