Так что после прочтения нескольких постов о том, как использовать Contains
в Lambda
, я не могу заставить это работать. Это должно быть просто, но я борюсь с этим до того момента, когда я собираюсь просто переписать его в Dapper.
Проблема заключается в следующем: У меня есть объект данных(сборка с EntityFramework
), которая извлекает некоторые данные из базы данных, эти данные сохраняются в переменной типа IQueryable<a>
:
var data = raw.Select(p => new
{
Id = p.Id,
StatusId = p.StatusId,
ProjectName = p.Room.Department.Project.Name,
ProjectId = p.Room.Department.Project.Id,
DepartmentName = p.Room.Department.Name,
DateCreated = p.DateCreated,
RoomName = p.Room.Name,
UserCreatedName = p.UserCreated.Firstname + (string.IsNullOrEmpty(p.UserCreated.Insertion) ? string.Empty : " ") + p.UserCreated.Insertion + " " + p.UserCreated.Lastname,
Comment = p.Comment,
});
В некоторых случаях мне нужно отфильтровать данные, этот фильтрlist
определенных идентификаторов проекта:
List<Right> rights = Rights.GetItems(userId).ToList();
var projectIds = rights.Select(x => x.ItemId);
Объект данных должен возвращать только те записи, которые соответствуют идентификаторам projectIds list
.
Хотя по какой-то причине я не могу сделать это:
data = data.Where(p => x.ProjectId.Contains(projectIds);
Поле ProjectId
не имеет перегрузки Contains
, это потому, что оно Anonymous type
?
Я работаю в проекте MVC 5
(.NET 4.7
).