Я думал, что я это понимаю и не буду иметь проблем с ним. Но теперь я смущен. У меня есть следующий код:«Только поддерживаются примитивные типы, типы перечислений и типы объектов»
public class ProjectMemberUserRolesElementViewModel
{
public string AccessType { get; set; }
public bool Delete { get; set; }
public bool Create { get; set; }
public bool Edit { get; set; }
public bool Read { get; set; }
}
var elements = from i in db.ProjectAccessTypes
select new ProjectMemberUserRolesElementViewModel()
{
AccessType = i.Type,
Create = (i.ProjectMemberAccess.Where(p => p.ProjectMemberID == ProjectMemberID) != null) ? (from p in i.ProjectMemberAccess where p.ProjectMemberID == ProjectMemberID select p.Create).FirstOrDefault() : false,
Delete = (i.ProjectMemberAccess.Where(p => p.ProjectMemberID == ProjectMemberID) != null) ? i.ProjectMemberAccess.Where(p => p.ProjectMemberID == ProjectMemberID).Select(p => p.Delete).FirstOrDefault() : false,
Edit = (i.ProjectMemberAccess.Where(p => p.ProjectMemberID == ProjectMemberID) != null) ? i.ProjectMemberAccess.Where(p => p.ProjectMemberID == ProjectMemberID).Select(p => p.Edit).FirstOrDefault() : false,
Read = (i.ProjectMemberAccess.Where(p => p.ProjectMemberID == ProjectMemberID) != null) ? i.ProjectMemberAccess.Where(p => p.ProjectMemberID == ProjectMemberID).Select(p => p.Read).FirstOrDefault() : false
};
Почему я получаю эту ошибку? Где здесь нет примитивного типа?
Вы можете заменить 'х? x: false' с 'x ?? false' – SLaks
Ошибка Оператор '??' не может применяться к операндам типа «bool» и «bool» \t;) –
Вставить 'p.Delete' в' bool? '. Однако значение по умолчанию 'bool' равно' false', поэтому вам это совсем не нужно. – SLaks