我在做下面的代码,而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();
一个人没有个人资料或没有个人资料,因此“个人”上的个人资料属性是可选的。
答案 0 :(得分:0)
另一种解决方法是在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();
}