К вашему сведению: синтаксический анализатор SubSonic linq не любит общие списки и содержит
// does not work
List<int> videoIds = new List<int>() {1,2,3,4,5};
var videos = Video.Find(v => videoIds.Contains(v.ID));
// should work
IEnumerable<int> videoIds = new List<int>() {1,2,3,4,5};
var videos = Video.Find(v => videoIds.Contains(v.ID));
Заметили разницу?
Звучит странно, но всякий раз, когда вы хотите использовать Contains () с Subsonic, вы сначала должны привести свой List к IEnumerable, чтобы предотвратить исключение NotSupportedException.