简体   繁体   English

'可为空的 object 必须有一个值。' 用于 LINQ c# 中的 ICollection

[英]'Nullable object must have a value.' for ICollection in LINQ c#

In my project I am trying to make this Context Object.在我的项目中,我试图制作这个上下文 Object。

securityContext.Engagement = new EngagementContext(
                engagement.EngagementId,
                engagement.GUID,
                engagement.Name,
                null,
                engagement.ClientId,
                engagement.Client?.GUID ?? Guid.Empty,
                engagement.Client?.Name,
                null); 

That 4th parameter however I dont want always to be null, instead I want it to be null when a userRoleId doesnt exist.但是,我不希望第 4 个参数总是 null,而是当 userRoleId 不存在时,我希望它是 null。 For reference its a IEnumerable Item of type "RoleType" that comes in there when assigning Ive tried replacing that 4th parameter with both of these following lines and keep getting " System.InvalidOperationException: Nullable object must have a value. "作为参考,它在分配时出现了“RoleType”类型的 IEnumerable 项,我尝试用以下两行替换第 4 个参数并继续获取“System.InvalidOperationException:Nullable object 必须有一个值。”

(engagement.EngagementUsers != null ? engagement.EngagementUsers?.Select(X => (RoleType)X?.RoleId) ?? null : null)

and

engagement.EngagementUsers?.Select(X => (RoleType)X.RoleId) ?? null,

How can I better go about this?我怎样才能更好地解决这个问题?

In my project I am trying to make this Context Object.在我的项目中,我试图制作这个上下文 Object。

securityContext.Engagement = new EngagementContext(
                engagement.EngagementId,
                engagement.GUID,
                engagement.Name,
                null,
                engagement.ClientId,
                engagement.Client?.GUID ?? Guid.Empty,
                engagement.Client?.Name,
                null); 

That 4th parameter however I dont want always to be null, instead I want it to be null when a userRoleId doesnt exist.但是,我不希望第 4 个参数总是 null,而是当 userRoleId 不存在时,我希望它是 null。 For reference its a IEnumerable Item of type "RoleType" that comes in there when assigning Ive tried replacing that 4th parameter with both of these following lines and keep getting " System.InvalidOperationException: Nullable object must have a value. "作为参考,它在分配时出现了“RoleType”类型的 IEnumerable 项,我尝试用以下两行替换第 4 个参数并继续获取“System.InvalidOperationException:Nullable object 必须有一个值。”

(engagement.EngagementUsers != null ? engagement.EngagementUsers?.Select(X => (RoleType)X?.RoleId) ?? null : null)

and

engagement.EngagementUsers?.Select(X => (RoleType)X.RoleId) ?? null,

How can I better go about this?我怎样才能更好地解决这个问题?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM