Выражение типа 'System.Nullable`1 [System.Int32]' нельзя использовать для параметра конструктора типа 'System.Int32' \ r \ nParameter name: arguments [0] - PullRequest
0 голосов
/ 06 декабря 2018

Я делал код ниже и EFCore бросает

Выражение типа System.Nullable'1[System.Int32] нельзя использовать для параметра конструктора типа System.Int32'\r\nParameter name: arguments[0]

var data= await _dbContext.Set<Person>().Select(person =>person.Profile != null ? 
new ProfileDto(org.Profile.Id , org.Profile.Nickname) : null).ToListAsync();

У Person либо есть профиль, либо его нет, поэтому свойство Profile для Person необязательно.

1 Ответ

0 голосов
/ 06 декабря 2018

Другой обходной путь - создание статического метода в ProfileDto, например,

public class ProfileDto
{
  public static ProfileDto CreateFromDb(int id, string nickname)
  {
    // this is a constuctor.
     return new ProfileDto(id,nickname);
  }
}

// Затем выполните:

{
var data= await _dbContext.Set<Person>().Select(person =>person.Profile != null ? 
ProfileDto.CreateFromDb(org.Profile.Id , org.Profile.Nickname) : null).ToListAsync();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...