0
У меня есть два LINQ группы по запросам, которые я хотел бы объединить группировки LockAssignments сначала LockAssignment.DateStart, затем LockAssignment.Lock.Zone:Объединить две группы LINQ запросов
// get the current lock assignments by day for a user
var lockAssignmentByDayForUserQuery = from la in
(
from la in db.LockAssignment
select new
{
LockAssignment = la,
UserId = la.UserId,
DateStart = DbFunctions.TruncateTime(la.DateStart),
DateExpire = DbFunctions.TruncateTime(la.DateExpire)
}
)
orderby la.DateStart
group la by la.DateStart into gGroup
select new
{
DateStart = gGroup.Key,
LockAssignments = gGroup.Where(q => q.UserId.Equals(userIdForUsername))
};
var lockAssignmentByDayForUser = lockAssignmentByDayForUserQuery.ToArray();
// get the current lock assignments by day for each zone for a user
var lockAssignmentInZoneByDayForUserQuery = from la in
(
from la in db.LockAssignment
select new
{
LockAssignment = la,
UserId = la.UserId,
DateStart = DbFunctions.TruncateTime(la.DateStart),
DateExpire = DbFunctions.TruncateTime(la.DateExpire)
}
)
orderby la.DateStart
group la by la.LockAssignment.Lock.Zone.ZoneName into gGroup
select new
{
Zone = gGroup.Key,
LockAssignments = gGroup.Where(q => q.UserId.Equals(userIdForUsername))
};
var lockAssignmentInZoneByDayForUser = lockAssignmentInZoneByDayForUserQuery.ToArray();
в течение конечный результат:
{
"lockAssignmentInZoneByDayForUser": [
{
"DateStart": "2015-03-04T00:00:00",
"LockAssignments": [
{
"Zone": "Watches",
"LockAssignmentDetails": {}
},
{
"Zone": "Jewlery",
"LockAssignmentDetails": {}
}
]
},
{
"DateStart": "2015-03-05T00:00:00",
"LockAssignments": [
{
"Zone": "Jewlery",
"LockAssignmentDetails": {}
}
]
}
]
}
Любая помощь будет замечательной! Заранее спасибо!
пожалуйста форматировать Ваш код так что читаемый ... (удалить все пробелы слева) –
@RufusL Я просто переформатировать код, чтобы сделать его более удобным для чтения. – Cole
Можете ли вы объяснить свой ожидаемый результат? Это не соответствует вашим запросам, поэтому без четкого объяснения трудно понять, чего вы хотите достичь. – aush