Привязка данных к списку <> с помощью Entity Framework - PullRequest
1 голос
/ 23 февраля 2012

У меня есть тонкий dal, который представляет операции CRUD с использованием Entity Framework (.net 4.0)

Могу ли я иметь список, который обновляется автоматически, чтобы отражать обновления в моей модели?Это однопользовательское (сервисное) приложение.

List<Advertisement> list = dal.GetActiveAdvertisements();

list.Count равно 5

dal.InsertActiveAdvertisements(newAdvertisement);

list.Count по-прежнему 5, но я хотел бы иметь 6 записей.

Можно ли это сделать?

Спасибо, Йорген

1 Ответ

1 голос
/ 23 февраля 2012

То, что вы просите сделать, легко, но, вероятно, не является хорошей практикой:

public class DAL {

    private List<Advertisement> _activeAdvertisements;
    public List<Advertisement> GetActiveAdvertisements() 
    {
        return _activeAdvertisements ?? _activeAdvertisements = // ... data access;
    }
    public void InsertActiveAdvertisements(Advertisement newAdvertisement)
    {
        var adList = GetActiveAdvertisements();
        adList.Add(newAdvertisements);
        // ... Add values to the database
    }
}

Я бы лично так не поступил:

  1. Это не потокобезопасно: если два потока пытаются добавить рекламу одновременно, у вас могут возникнуть проблемы.
  2. Легко выйти из синхронизации с базой данных. Что если реклама будет добавлена ​​в другом экземпляре DAL?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...