我正在尝试在数据层中使用EF4为一个n层应用程序组合一个简单的POC。我在Web上查看了很多示例,使用DAO或Repository作为ORM的包装器似乎是一种常见的做法。我的理解是,两者之间的主要区别在于存储库更通用,并且例如对于参数需要IQueryable。我希望(为了更好)在这一点上坚持使用更简单的DAO对象,这些对象将包含相当具体的方法,例如GetPersonByFirstName(字符串名称),类似于之前基于ADO.NET的东西。也就是说,我仍然需要为我的DAO提供几个“交叉”功能。
谢谢!
答案 0 :(得分:0)
在做了一些更多的研究之后,我似乎正在将实体框架上下文存储在httpContext.Items中。有很多解决方案可以基本上创建一个工厂来管理EF上下文的生命周期。我的解决方案的主要问题是我的库不能用于非Web项目,所以我认为我需要沿着使用IoC容器(而不是工厂)的路径为我注入上下文的生命周期对象每个请求。这样,如果我需要在控制台应用程序中使用我的库,例如我可以将配置更改为类似于每个线程的对象等。