c# - linq C# 语句返回的匿名类型错误
问题描述
我正在尝试将以下 sql 语句转换为 linq c#。我得到的输出是 . 谁能告诉我问题是什么
“System.Linq.Enumerable+WhereSelectEnumerableIterator 2[<>f__AnonymousType0
2[Argentex.Core.DataAccess.Entities.UserChangeRequestApproval,Argentex.Core.DataAccess.Entities.AuthUser],System.String]”
SQL
BEGIN
-- Declare the return variable here
declare @listStr nvarchar(200)
select
@listStr = COALESCE(@listStr+',' ,'') + au.UserName
from
UserChangeRequestApproval ra join
AuthUser au on ra.ApprovedByAuthUserID = au.ID
where
ra.UserChangeRequestID = @UserChangeRequestID
order by
au.UserName asc
return isnull(@listStr, '')
END
林克
private string GetApprovedByUserName(int userChangeRequestId, IList<UserChangeRequestApproval> userChangeRequestApproval, IList<AuthUser> authUser)
{
return userChangeRequestApproval
.Join(authUser, r => r.ApprovedByAuthUserId, au => au.Id, (r, au) => new { r, au })
.Where(x => x.r.UserChangeRequestId == userChangeRequestId).Select(x=> x.au.UserName).ToString();
}
我也试过这个,但它没有用
return userChangeRequestApproval
.Join(authUser, r => r.ApprovedByAuthUserId, au => au.Id, (r, au) => new { r, au })
.Where(x => x.r.UserChangeRequestId == userChangeRequestId).Select(x => new AuthUser() { UserName = x.au.UserName}).ToString();
Full code
var pendingUserChangeRequests = userChangeRequestRepository
.Join(authRepository, r => r.AuthUserId, au => au.Id, (r, au) => new { r, au })
.Join(authApplicationRepository, aau => aau.au.ApplicationId, ap => ap.Id, (aau, ap) => new { aau, ap })
.Join(authRepository, rr => rr.aau.r.ChangedByAuthUserId, rra => rra.Id, (rr, rra) => new { rr, rra })
.Where(x => x.rr.aau.r.ChangeStatus == "Pending")
.Select(m => new PendingApprovalUserChangeRequest
{
UserChangeRequestID = m.rr.aau.r.Id,
AuthUserID = m.rr.aau.r.AuthUserId,
AuthUserName = m.rr.aau.au.UserName,
CurrentValue = m.rr.aau.r.CurrentValue,
ProposedValue = m.rr.aau.r.ProposedValue,
ChangeValueType = m.rr.aau.r.ChangeValueType,
ChangeDateTime = m.rr.aau.r.ChangeDateTime,
ChangedByAuthUserID = m.rr.aau.r.ChangedByAuthUserId,
ChangedByAuthUserName = m.rr.aau.r.ChangedByAuthUser.UserName,
ChangeStatus = m.rr.aau.r.ChangeStatus,
AuthApplicationDescription = m.rr.ap.Description,
ApprovalsRequired = m.rr.ap.Description == "ArgentexClient" ? internalApprovalsRequired : externalApprovalsRequired,
ApprovedBy = GetApprovedByUserName(m.rr.aau.r.Id, userChangeRequestApprovalRepository, authRepository)
}).ToList();
Output
[
{
"userChangeRequestID": 48,
"authUserID": 1411,
"authUserName": "rmenon17",
"forename": "test",
"surname": "Menon",
"company": "ArgentexClient",
"authApplicationDescription": "ArgentexClient",
"currentValue": "rmenon17@synetec.co.uk",
"proposedValue": "rmenon171@synetec.co.uk",
"changeValueType": "Email",
"changeDateTime": "2019-11-05T16:42:50.363",
"changedByAuthUserID": 1352,
"changedByAuthUserName": "UserManagerTest",
"changeStatus": "Pending",
"approvalsRequired": 2,
"approvedBy": "System.Linq.Enumerable+WhereSelectEnumerableIterator`2[<>f__AnonymousType0`2[Argentex.Core.DataAccess.Entities.UserChangeRequestApproval,Argentex.Core.DataAccess.Entities.AuthUser],System.String]"
}
]
解决方案
推荐阅读
- python - python遍历JSON对象并写入csv
- sql-server - JDBC 连接失败
- azure - Azure:是否可以在 azure 备份中删除还原点?
- sql - 高效地处理和更新 SQL 中的每一行
- excel - ADODB.Recordset 中小时 >24 时 AVG() 时间的错误结果
- function - 如何获取 Azure FunctionApp 绑定的返回绑定属性
- php - 由于 CORS 错误,Jquery ajax 请求不起作用
- weblogic - 我可以在 weblogic 服务器上终止 close_wait 连接吗
- python - 是否有任何选项可以避免在 AWS API 网关中为 lambda 函数创建更多端点
- ios - 从具有 HH:mm 时间格式的字符串中获取日期在 swift 中不适用于日语和地区