C# 如果表达式不匹配,LINQ返回表达式
我不确定标题是否能很好地解释这个问题,所以下面是代码。我想返回一个匿名对象来绑定我的网格。在该网格中,我想将用户名更改为全名,但前提是我有与用户名匹配的全名。在下面的查询中,如果userModels中存在CreatedUsername,我将获得CreatedFullname。如果它不存在,那么我就根本得不到记录。我所做的是获取记录,如果userModels中有UserFullname,则显示UserFullname,如果没有,则返回x.CreatedUsernameC# 如果表达式不匹配,LINQ返回表达式,c#,linq,entity-framework-5,asp.net-4.5,C#,Linq,Entity Framework 5,Asp.net 4.5,我不确定标题是否能很好地解释这个问题,所以下面是代码。我想返回一个匿名对象来绑定我的网格。在该网格中,我想将用户名更改为全名,但前提是我有与用户名匹配的全名。在下面的查询中,如果userModels中存在CreatedUsername,我将获得CreatedFullname。如果它不存在,那么我就根本得不到记录。我所做的是获取记录,如果userModels中有UserFullname,则显示UserFullname,如果没有,则返回x.CreatedUsername var inf = (fro
var inf = (from ev in db.Events
where (ev.StartDate >= beginDate && ev.StartDate <= endDate)
orderby ev.StartDate descending
select new
{
EventID = ev.EventID,
EventTitle = ev.Title,
EventDate = ev.StartDate,
StudentCount = ev.EventStudents.Count(),
CreatedUsername = ev.CreatedUsername
}).AsEnumerable().Select(x => new {EventID = x.EventID,
EventTitle = x.EventTitle,
EventDate = x.EventDate,
StudentCount = x.StudentCount,
CreatedUsername = x.CreatedUsername,
CreatedFullname =
userModels.Where(u => u.Username == x.CreatedUsername).FirstOrDefault().UserFullName
});
var inf=(来自以db.Events表示的ev)
其中(ev.StartDate>=beginDate&&ev.StartDate new{EventID=x.EventID,
EventTitle=x.EventTitle,
EventDate=x.EventDate,
StudentCount=x.StudentCount,
CreatedUsername=x.CreatedUsername,
CreatedFullname=
其中(u=>u.Username==x.CreatedUsername).FirstOrDefault().UserFullName
});
userModels是一个自定义对象,具有用户名、UserFullname、Department等。它是根据beginDate和endDate在pageload上从ActiveDirectory收集的。您可以执行以下操作:
CreatedFullname =
userModels.Where(u => u.Username == x.CreatedUsername)
.Select(x => x.UserFullName)
.FirstOrDefault() ?? x.CreatedUsername
或者这个:
var inf =
(from x in
(from ev in db.Events
where (ev.StartDate >= beginDate && ev.StartDate <= endDate)
orderby ev.StartDate descending
select new
{
EventID = ev.EventID,
EventTitle = ev.Title,
EventDate = ev.StartDate,
StudentCount = ev.EventStudents.Count(),
CreatedUsername = ev.CreatedUsername
})
.AsEnumerable()
let model = userModels.FirstOrDefault(u => u.Username == x.CreatedUsername)
select new
{
EventID = x.EventID,
EventTitle = x.EventTitle,
EventDate = x.EventDate,
StudentCount = x.StudentCount,
CreatedUsername = x.CreatedUsername,
CreatedFullname = (model != null)
? x.modelUserFullName
: x.CreatedUsername
});
var-inf=
(从x开始)
(以db.事件为单位的ev)
其中(ev.StartDate>=beginDate&&ev.StartDate u.Username==x.CreatedUsername)
选择新的
{
EventID=x.EventID,
EventTitle=x.EventTitle,
EventDate=x.EventDate,
StudentCount=x.StudentCount,
CreatedUsername=x.CreatedUsername,
CreatedFullname=(模型!=null)
?x.modelUserFullName
:x.CreatedUsername
});