К сожалению, в этом случае единственным вариантом является перебирать цикл archivedPwds
и удалять их «вручную» (т.е. вызывая db.PasswordArchive.DeleteOnSubmit).
Вы можете попробовать использовать перегрузку метода Select
для получения индексов элементов,
я. е. переписав его в
var archivedPwds = db.PasswordArchive
.Where(x => x.UserId == userId)
.OrderBy(x => x.DateChanged)
.Select((idx, item) => new { Index = idx, Item = itm })
, а затем используйте поле Index для фильтрации элементов, которые вы хотите удалить. Хотя я не пробовал это в реальном мире, и я не совсем уверен, сможет ли linq2sql обработать его.