В дополнение к предыдущему вопросу У меня была возможность упростить запрос, но проблема с поставщиком MySQL все еще возникает.
У меня есть таблица членства, в которой записываетсяявляется ли пользователь членом списка.Когда происходит обновление членства пользователя, записывается новая запись, а предыдущие записи остаются как есть, что позволяет вести историю их членства.Чтобы получить статус участника, необходимо выбрать его самую последнюю запись.
Пример некоторых данных о членстве в списке пользователей приведен ниже.Цель состоит в том, чтобы найти выражение LINQ, которое группирует по списку и пользователю, но возвращает только строку с последней вставленной записью.
List Name, Username, Comment, ExpiresOn, Inserted
Test List, joeb, second update, 2012-03-13 16:55:03, 2012-01-31 22:28:40
Test List, joeb, first update, 2012-02-13 16:55:01, 2012-01-31 22:28:39
Test List, joeb, initial, 2012-01-13 16:55:02, 2012-01-31 22:28:38
Мое выражение LINQ выглядит следующим образом.
var query = from mem in db.UserListMemberships
where
mem.Inserted >= (from mem2 in db.UserListMemberships where mem.UserID == mem2.UserID && mem.UserListID == mem2.UserListID orderby mem2.Inserted descending select mem2.Inserted).FirstOrDefault()
select mem;
Проблема в том, что я получаю исключение от провайдера сущностей MySQL «MySql.Data.MySqlClient.MySqlException: неизвестный столбец« Extent1.UserID »в« предложении where »».Есть ли другой способ, которым я мог бы написать выражение, которое могло бы обойти исключение MySQL?