数据绑定到列表<>与实体框架

时间:2012-02-23 15:41:12

标签: c# entity-framework-4

我有一个瘦dal,它使用Entity Framework(.net 4.0)公开CRUD操作

我可以自动更新列表以反映模型中的更新吗?它是单个用户(服务)应用程序。

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

list.Count是5

dal.InsertActiveAdvertisements(newAdvertisement);

list.Count仍然是5,但我希望有6个参赛作品。

我能完成这个吗?

谢谢Jørgen

1 个答案:

答案 0 :(得分:1)

你要求做的很容易,但可能不是很好的做法:

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的其他实例中
  3. ,该怎么办?