域驱动设计和实体框架4.1(代码优先)

ada*_*dam 7 c# domain-driven-design entity-framework

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

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

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

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

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

非常感谢 :)

亚当

Mag*_*eus 8

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

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

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

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

但是你决定采用Code First方法是件好事.如果你有选择,我真的推荐这种方法.但有时当旧的遗留系统发生干扰时,情况并非如此简单.