为什么ORM不支持IoC容器

时间:2013-04-15 22:02:16

标签: .net entity-framework nhibernate design-patterns inversion-of-control

这个问题有很多部分:

  1. 是否有任何支持使用IoC容器的.NET ORM?
  2. 如果不是,为什么不呢?
  3. 这不会强迫一个热爱域名驱动设计的人(我 包括)在域中使用大量服务类 模型使所有域对象纯数据结构没有行为(不知道这是否真的是坏事)或更糟糕的是使用方法或属性注入。
  4. 是否有任何方向支持IoC容器 未来。

1 个答案:

答案 0 :(得分:2)

对于NHibernate,是的,可以注入依赖项。但对于实体框架,我并非百分之百确定。

NHibernate的

关于NHibernate,在SO上有很多类似的问题。

Injecting Dependencies into Domain Model classes with Nhibernate (ASP.NET MVC + IOC)

Dependency injection with NHibernate objects

DI/IoC, NHibernate and help in getting them to work together

总结这些答案可以使用Interceptors将依赖关系注入您的POCO。

实体框架

对于Entity Framework我理解可以使用EF 4.0以上版本,请参阅this博文。看起来这种方法的主要缺点是它不适用于延迟加载。