Обращаясь к этому вопросу, допустим, у нас есть следующий сценарий -
Пользователь модели класса, который реализует IUser
[MetadataType(typeof(IUser))]
public class User : IUser
И хранилище, котороеобрабатывает сохранение, извлечение и т. д. этого из любого хранилища данных, которое мы хотим использовать
public class UserRepository : IRepository<User>
IQueryable<User> GetAUserBySomeCriteriaOrOther(int aParam, string anotherParam);
В дальнейшем у нас будет контроллер и, возможно, представление сверху, каждый из которых ожидает экземпляр IQueryable<User>
.
Мои вопросы, таким образом: Каковы преимущества / недостатки передачи результатов из хранилища в виде (скажем) IQueryable<User>
по сравнению с IQueryable<IUser>
?
Моя причина спрашиватьчто большинство примеров / демонстраций, которые я вижу, будут использовать IQueryable<User>
, но мне кажется, что это вводит связь между более высокими уровнями и любым методом, который я использую для генерации класса User
.Скажем, я хочу перейти с Linq на Sql на Entity Framework - разве это не большая головная боль?