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,