У меня есть трехуровневое приложение, в котором мне нужно получить результаты базы данных и заполнить пользовательский интерфейс.У меня есть класс MessagesCollection, который имеет дело с сообщениями.Я загружаю своего пользователя из базы данных.При создании экземпляра пользователя (т.е. нового пользователя ()) выполняется MessageCollection Messages = new MessageCollection (this).Коллекция сообщений принимает пользователя в качестве параметра.
User user = user.LoadUser("bob");
Я хочу получать сообщения для Боба.
user.Messages.GetUnreadMessages();
GetUnreadMessages вызывает моего поставщика бизнес-данных, который, в свою очередь, вызывает уровень доступа к данным,Поставщик бизнес-данных возвращает List.
У меня такой вопрос - я не уверен, что здесь лучше всего использовать - если у меня есть коллекция сообщений в массиве внутри класса MessagesCollection, я мог бы реализовать ICollection для предоставления GetEnumerator() и возможность прохождения сообщений.Но что произойдет, если сообщения изменятся, а пользователь загрузит старые сообщения?
А как насчет больших коллекций сообщений?Что если бы у моего пользователя было 10000 непрочитанных сообщений?Я не думаю, что доступ к базе данных и возвращение 10 000 объектов Message будет эффективным.