C# ';可为null的对象必须有一个值;用于LINQ c中的ICollection#
在我的项目中,我试图使这个上下文对象C# ';可为null的对象必须有一个值;用于LINQ c中的ICollection#,c#,linq,C#,Linq,在我的项目中,我试图使这个上下文对象 securityContext.Engagement = new EngagementContext( engagement.EngagementId, engagement.GUID, engagement.Name, null, engagement.ClientId,
securityContext.Engagement = new EngagementContext(
engagement.EngagementId,
engagement.GUID,
engagement.Name,
null,
engagement.ClientId,
engagement.Client?.GUID ?? Guid.Empty,
engagement.Client?.Name,
null);
但是,第四个参数我不希望总是为null,而是希望当userRoleId不存在时它为null。作为参考,它是一个IEnumerable项,类型为“RoleType”,在赋值时会出现
我试着用下面两行替换第四个参数,并一直得到“System.InvalidOperationException:Nullable对象必须有一个值”。
"
及
我该怎么做才能更好呢?你可以在课堂上查看。通过这种方式,您可以检查并更改第4个值,并抛出任何想要引用的异常,它是一个IEnumerable类型的项,在赋值时会出现,我真的不明白这句话。与其用英语描述它,不如提供声明它的c#代码,并提供适当的语法,这样就没有问题了?什么时候会出现这个错误?当您创建上下文或尝试插入行(修改数据库)时?这是否回答了您的问题?
(engagement.EngagementUsers != null ? engagement.EngagementUsers?.Select(X => (RoleType)X?.RoleId) ?? null : null)
engagement.EngagementUsers?.Select(X => (RoleType)X.RoleId) ?? null,