I have following DTO:
public class DTO_UserWithCreds
{
public string Name { get; set; }
public string Surname { get; set; }
public string Ava1 { get; set; }
public UserType Type { get; set; }
public string Uid { get; set; }
public DateTime? BanDateTime { get; set; }
};
And I get users from database as following:
var users = from vkuser in _context.VkUsers
join contextUser in _context.Users on vkuser.Uid equals contextUser.Uid
join userClaim in _context.UserClaims on contextUser.Id equals userClaim.UserId
let userBanOffset = contextUser.LockoutEnd
let userBan = userBanOffset.HasValue ? userBanOffset.Value.Date : null
select new DTO_UserWithCreds
{
Name = vkuser.Name,
Surname = vkuser.Surname,
Ava1 = vkuser.Ava1,
Uid = vkuser.Uid,
Type = DTO_UserWithCreds.FromString(userClaim.ClaimValue),
BanDateTime = userBan
};
I get following error message (I dont really understand it to be honest):
If I change request to this:
var users = from vkuser in _context.VkUsers
join contextUser in _context.Users on vkuser.Uid equals contextUser.Uid
join userClaim in _context.UserClaims on contextUser.Id equals userClaim.UserId
let userBanOffset = contextUser.LockoutEnd
// let userBan = userBanOffset.HasValue ? userBanOffset.Value.Date : null
select new DTO_UserWithCreds
{
Name = vkuser.Name,
Surname = vkuser.Surname,
Ava1 = vkuser.Ava1,
Uid = vkuser.Uid,
Type = DTO_UserWithCreds.FromString(userClaim.ClaimValue),
BanDateTime = contextUser.LockoutEnd?.DateTime
};
I will have compile error that lambda inside expression tree cant contain null propagation operator. Is it possible to get this information like I want? Or I have to write second query?