Я получаю последние 20 обновленные записи в базе данных с помощью следующейASP.Net MVC Linq Группировка запросов
var files = (from f in filesContext.Files
join ur in filesContext.aspnet_Roles on f.Authority equals ur.RoleId
join u in filesContext.aspnet_Users on f.Uploader equals u.UserId
orderby f.UploadDate descending
select new FileInfo { File = f, User = u, UserRole = ur }).Take(20);
Я затем разделив результаты на мой взгляд:
<%foreach(var group in Model.GroupBy(f => f.UserRole.RoleName)) {%>
//output table here
Этот отлично, поскольку таблица отображается для каждой из моих ролей. Однако, как и ожидалось, я получаю последние 20 записей в целом, как я могу получить последние 20 записей за роль?
Так что я в конечном итоге с:
UserRole1
// Последние 20 записей, относящихся к этому UserRole1
UserRole2
// Последние 20 записей, относящихся к этому UserRole2
UserRole3
// Последние 2 0 Записей, относящихся к этому UserRole3
Большое спасибо за ваши предложения. Я думаю, что вариант 3 будет лучшим методом для этой системы, так как в конечном итоге будет много ролей, и вставки в базу данных, вероятно, будут распределены по всем ролям, поэтому захват х-суммы должен покрыть ее. – 2009-10-13 12:40:41