У меня есть база данных с пользователями.
У пользователей есть Предметы.
Эти предметы могут активно меняться.
Как получить доступ к элементам в формате типа коллекции?
Для пользователя я заполняю все пользовательские свойства во время создания экземпляра.
Если я загружаю элементы пользователя во время создания экземпляра, и элементы меняются,
у них будут старые данные.
Я подумал, может быть, мне нужен класс ItemCollection и иметь это поле / свойство отдельно от класса пользователя, чтобы таким образом проходить все элементы пользователя, которые я мог бы использовать цикл foreach.
Итак, мой вопрос: каков наилучший метод / лучший способ доступа к элементам из базы данных, используя какую-то коллекцию? При доступе к конкретному элементу необходимо получить самую последнюю информацию о базе данных, а когда пользователь выполняет цикл foreach, должна быть доступна последняя информация об элементе.
т.е. Что я пытаюсь сделать
Console.WriteLine(User.Items[3].ID); returns 5.
//this updates the item information and saves it to the database.
User.Items[3].ID = 13;
//Add a new item to the database.
User.Items.Add(new Item { id = 17});
foreach (Item item in User.Items) {
//this would traverse all items in the database.
//not some cached copy at the time of instantiation of the user.
}
Редактировать: Извините, я немного неправильно написал этот вопрос.
В настоящее время я использую Linq, но у меня есть сопоставление классов с бизнес-объектами.
Когда я делаю обход бизнес-объекта, я хотел бы, чтобы он пошел к текстовому тексту Linq и получил информацию.
Когда я реализую новый класс "ItemCollection", который реализует интерфейс IList,
Что мне нужно сделать, чтобы вернуть его?
С помощью User.Items [3] реализуется в публичном Item этот метод [int index].
Должен ли метод index использовать оператор linq.Skip для получения индекса элемента в базе данных?
Я просто немного озадачен отображением коллекций бизнес-объектов в базу данных.