我想從3個表中使用LINQ返回一個IEnumerable<PortalUser>
但沒有太多運氣的數據。當我想返回的結果,這是IQueryable<PortalUser>
型的,我不知道我應該爲了達到我的目標是做:LINQ IQueryable到IEnumerable
public Task<IEnumerable<PortalUser>> GetUsers(string accountCode)
{
var res = from u in _db.Users
join ur in _db.UserRoles on u.ContactGuid equals ur.ContactGuid
join r in _db.Roles on ur.RoleId equals r.Id
where ur.AccountCode == accountCode
select(new PortalUser(u.Id, u.FriendlyName, u.UserName, r.RoleName));
return res;
}
在我的選擇,我嘗試使用PortalUser
構造函數使PortalUsers,並認爲這會給我我想要的,但顯然不是。
public class PortalUser
{
public PortalUser(int id,string friendlyName,string username,string rolename)
{
Id = id.ToString();
Firstname = friendlyName.Split(' ')[0];
Lastname = friendlyName.Split(' ')[1];
Username = username;
Role = rolename;
}
public string Id { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
public string Username { get; set; }
public string Role { get; set; }
}
我得到這個錯誤:
Cannot implicitly convert type
'System.Linq.IQueryable<BSAR.Services.Models.Outbound.Full.PortalUser>'
to'System.Threading.Tasks.TaskSystem.Collections.Generic.IEnumerable<BSAR.Services.Models.Outbound.Full.PortalUser'>
. An explicit conversion exists (are you missing a cast?)
難道你不明白什麼錯誤消息?它期待着一個'任務',但你沒有提供一個'任務'。你不能那樣做。 – Servy
你能改變返回類型嗎?如果沒有,爲什麼不標記方法'async'和'return awa.res.ToListAsync()'?你最近想做什麼? – CodeCaster