Я немного запутался, когда использую «шаблон IRepository», когда фактически загружаю данные.
В настоящее время у меня есть что-то вроде этого:
public class MainViewModel : ViewModelBase
{
// EF4 generated ObjectContext
private ScorBotEntities context = new ScorBotEntities();
// Custom IUserRepository class
private IUserRepository userRepository;
public MainViewModel()
{
this.userRepository = new UserRepository(context.Users);
}
public ObservableCollection<User> Users
{
get
{
return new ObservableCollection<User>(userRepository.GetAll());
}
}
}
ScorBotEntities автоматическииспользуя EF4 (я посмотрел на POCO, чтобы много работать для этого масштабного проекта).
Вы можете найти определение UserRepository здесь: http://code.google.com/p/i4prj4-g2/source/browse/ScorBotRobotics/ScorBotRobotics/Repositories/UserRepository.cs
Но в основном меня интересует то, почему даже здесь имеет смысл использовать хранилище вместопросто напишите это так:
public class MainViewModel : ViewModelBase
{
private ScorBotEntities context = new ScorBotEntities();
public MainViewModel()
{
}
public ObservableCollection<User> Users
{
get
{
return new ObservableCollection<User>(context.Users);
}
}
}
Имеет смысл абстрагировать функциональность, например, с помощью метода UsernameAndPassword.Но в этом случае, возможно, использование некоторых объектов Query было бы более идеальным?