Не может конвертировать из 'System.Guid?' to 'System.Guid'

Кто-нибудь знает, как справиться с этой ошибкой?

cannot convert from 'System.Guid?' to 'System.Guid'

Ответ 1

См. MSDN.

В этом случае просто используйте myNullableVariable.Value (если вы уверены, что оно имеет значение) или (myNullableVariable.HasValue)?myNullableVariable.Value:somedefaulthere, если вы этого не сделали.

Можно также использовать GetValueOrDefault(), если неважно, является ли значение по умолчанию конкретным значением, когда значение nullable действительно равно null.

Последний способ сделать это: myNullableVariable.Value ?? defaultvalue.

См. технически переменная MyType? является Nullable<MyType> под обложками. Между ними нет неявных или явных отбросов, поэтому вам нужно извлечь значение из Nullable вручную. Третий способ, который я перечислял, является наиболее кратким (и лучшим?) Способом сделать это, что, вероятно, будет лучше всего в большинстве случаев.

Ответ 2

Использовать свойство Guid?.Value для преобразования 'System.Guid?' to 'System.Guid'. в следующем примере

 Obj GetValue(Guid yourID)
{
return FetchObject(yourID)
}
Void main()
{
Guid? passvalue;
Obj test = GetValue(passvalue.Value);
}

Ответ 3

Сначала проинтегрируйте переменную guid.

Guid yourGuid= Guid.NewGuid()

затем установите значение в том, что вы хотите, например:

 Guid defaultId = Guid.NewGuid();
 if (customerRow.GuardianState.Length > 2) {
 Guid StateId = record.StateId ?? defaultId;}

Ответ 4

не может конвертировать из 'System.Guid?' to 'System.Guid'

вы пытаетесь сохранить тип System.Guid? к типу system.Guid внутри вашей модели вы можете редактировать System.Guid? на System.Guid, удалив вопросительный знак.

или Ответ RCIX выше