代码之家  ›  专栏  ›  技术社区  ›  e36M3

具有实体框架4.0的基本/简单数据访问对象(DAO)

  •  2
  • e36M3  · 技术社区  · 15 年前

    1. 如何在dao之间共享上下文?最好是在实例化DAO的业务对象不知道EF的情况下。起初,我认为BO将把会话传递给DAO,但这违反了我对BO独立于EF的要求(除非我没有想到什么)。也许是某种单件/工厂的方法?
    2. 我想我可能有一个基类DAO,它有非常基本的CRUD方法,可以在所有DAO之间共享,但又不是IQueryable。
    3. 我想在我的业务对象中使用TransactionScope来包装我的DAO(我不认为这是个问题)。

    谢谢您!

    1 回复  |  直到 15 年前
        1
  •  0
  •   e36M3    15 年前

    在做了更多的研究之后,我在httpContext.Items中存储实体框架上下文的方法似乎是正确的。有很多解决方案基本上是创建一个工厂,以这种方式管理EF上下文的生命周期。这个解决方案的主要问题是,我的库不能用于非web项目,因此我认为我需要使用IoC容器(而不是工厂)为我注入上下文,每个请求的对象生命周期。这样,如果我需要在控制台应用程序中使用我的库,例如,我可以将配置更改为每个线程的对象等。