有UserManager
方法(ASP .NET身份核心默認實現)的簽名:轉換爲IList的(小巧精緻的返回結果)
public Task<IList<string>> GetRolesAsync(User user) {
const string query = @"
select r.[Name]
from [UserRoles] ur
left join [Roles] r on r.RoleId = ur.RoleId
where ur.UserId = @userId;
";
return Task.Factory.StartNew(() => {
using (SqlConnection connection = new SqlConnection(_connectionString))
return connection.Query<string>(query, new { userId = user.UserId });
});
}
但不幸的是回報IEnumerable<T>
。
是否可以返回IList<T>
或者我必須自己進行轉換?
這是正確的答案。 – FSou1
@ FSou1我是主要作者之一,我不同意;) –
無法保證您的演員將始終工作。這很容易引發異常。 ToList更安全。 – Shire