Я надеюсь получить немного совета по проблеме, с которой я столкнулся с преобразованием моей текущей настройки в ту, которая включает в себя DTO. То, что я пытаюсь сделать, это получить конкретный пользователь на основе их кода пользователя. Но им наталкивается проблемы в выражении LINQОбъекты передачи данных C# MVC API
.AsEnumerable().Where(a => a.uCode == code);
Он бросает эту проблему ....
cannot implicitly convert type system.collections.generic.ienumerable<DataModel.UserDTO>to'DataModel.Users'. An explicit conversion exists
Мой метод:
[Route("api/Usr/{usrCode}")]
public User GetUser(string code)
{
return db.Users.Select(s => new UserDTO
{
uid = s.uid,
firstName = s.firstName,
lastName = s.lastName,
email = s.emailAddress,
area = s.areaId,
uCode = s.uCode
}).AsEnumerable().Where(a => a.uCode == code);
}
Мой DTO:
public class UserDTO
{
public int uid { get; set; }
public String firstName { get; set; }
public String lastName { get; set; }
public String dob {get; set;}
public String email { get; set; }
public String profile { get; set; }
public String uCode { get; set; }
public int areaId { get; set; }
}
Метод изменения возвращает тип от '' User'' до '' IEnumerable '' по мере возвращения коллекции –
Во-первых, ваш запрос возвращает коллекцию, а не один объект (вам нужно использовать 'FirstOrDefault()'. генерирует 'UserDTO', но ваш метод возвращает тип' User' (они не совпадают) –