Вы можете привести к IUser в проекционной части запроса:
List<User> users;
using (AbleridgeDataContext context = new AbleridgeDataContext())
{
return from u in context.Users select (IUser)u;
}
Единственное изменение, которое для этого потребуется, - заставить вашу функцию возвращать IEnumerable<IUser>
, что было бы лучше в любом случае, потому что запрос выиграл 'не будет выполняться до тех пор, пока вызывающий не начнет перечисление.
Хотя вы также можете просто использовать ToList
, если вы не заинтересованы в его изменении.
Обновление На самом деле вывероятно, захочет использовать ToList
здесь, потому что оператор using избавляется от контекста данных, как только функция возвращается, так что отложенный запрос не будет выполнен.