LINQ to Entities прогнозы - PullRequest
       7

LINQ to Entities прогнозы

0 голосов
/ 17 апреля 2011

ОБНОВЛЕНИЕ: по сути, я хочу получить список всех разрешений и список всех разрешений для данной роли. Затем я хочу пометить каждое разрешение в списке элементов SelectListItems как выбранных, когда они уже принадлежат роли 1001 *

У меня есть три таблицы:

Проект 1- * Роль - Разрешение

Я пытаюсь создать и IEnumerable, используя проекцию, у которой есть все разрешения в списке, но когда я проецирую на SelectItemList, он идентифицирует разрешения, которые уже связаны с определенной ролью:

public IEnumerable GetAllPermissionsPLusRole(int projectid, int roleid)
    {
        using (var db = new Entities())
        {
            var permissions = (from p in db.Permissions
                               select p).ToList();

            var permissionsForRole = from r in db.Roles
                                     where r.RoleId == roleid && r.PrjectProjectId == contractid
                                     select r.Permissions.ToList();

            IEnumerable<SelectListItem> selectList = from p in permissions select new SelectListItem { Text = p.PermissionName, Value = p.PermissionId.ToString()};
            return selectList;
        }
    }

То, что я хочу сделать, это иметь условно выбранный в проекции, поэтому при отображении списка я могу показать разрешения, уже связанные с ролью.

Заранее спасибо.

1 Ответ

1 голос
/ 17 апреля 2011

Если я правильно понимаю, вы уже загрузили все данные, теперь вам просто нужно проверить, есть ли данное разрешение в списке permissionsForRole, т.е. вот так:

IEnumerable<SelectListItem> selectList = from p in permissions
    select new SelectListItem
    {
        Text = p.PermissionName, 
        Value = p.PermissionId.ToString(),
        Selected = permissionsForRole.Contains(p)
    };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...