Это должно работать:
var lastTen = (
from doc in Documents
join log in AccessLogs on doc.Id equals log.DocId
order by log.AccessTime desc
select doc
).Take(10).Reverse().ToList();
Редактировать - Затем используйте следующее:
var lastTen = (
from doc in Documents
join log in AccessLogs on doc.Id equals log.DocId
order by log.AccessTime desc
select new {
DocId = doc.Id,
DocName = doc.DocName,
LogId = Log.Id,
AccessTime = log.AccessTime
}
).Take(10).Reverse().ToList();
Редактировать 2
Предполагая, что в DBML смоделирована взаимосвязь, вы также можете выбрать только последние десять записей журнала и затем обратиться к связанному документу через автоматически сгенерированное свойство .Document
.
Что касается вашего комментария: Приведенные выше операторы не могут вернуть эту ошибку, так как новый Document
не создается, вместо этого создается анонимный тип, который содержит необходимые значения.