域驱动设计和entity framework4.1(代码优先)

我目前正在学习领域驱动的开发设计方法,并使用Tim McCarthy的.NET域驱动设计和C#书作为指南。

这本书真的很有帮助,但是在使用entity framework时,我变得有点不安,特别是4.1中提供的代码优先方法。

根据本书中的示例,分层体系结构方法应该意味着基础结构层无法看到模型/域。

那么在db上下文类中映射我的域poco的最佳方法是什么(我假设)应该位于基础结构层中,而不违反分层方法?

很有可能我的想法完全错了所以请告诉我,因为我还在学习!

非常感谢 :)

亚当

今天大多数ORM,如EF 4.1和Nhibernate(流利的Nhibenrate插件)可以通过映射类描述从POCO到Db上下文的映射。 这些映射类最好放在基础结构数据库项目中,也可以与ORM会话特定类一起放置。

然后,您的POCO域类应放在一个不应该引用其他组件或项目的Domain项目中。 但是基础结构数据库项目应该引用域,以便您的映射类可以描述如何从持久状态加载POCO。

使用大量dependency injection以及良好且可靠的IoC框架(Windsor Castle …)。 这将有助于您放松一点点。 它更好地依赖于抽象/接口而不是实现。

以下是http://www.infoq.com/articles/ddd-in-practice的基础知识

但是你决定采用Code First方法是件好事。 如果你有选择,我真的推荐这种方法。 但有时当旧的遗留系统发生干扰时,事情就不容易了。