我是实体框架的新手(代码优先,如果重要)。正如我一直在使用它,我一直在构建我的POCO课程,并将它们视为最终的领域模型。通过Lazy Loading之类的东西,我喜欢Idea,我可以直接在我的表示层中使用这些实体,从而延迟加载实际需要的内容。我应该将EF中的实体看作域模型还是DTO?
但是,我最近也了解到数据传输对象,这是我以前从未听说过的。这绝对有道理;我的最终域模型的行为可能有一些不属于DAL的业务规则。例如,如果我给实体框架的POCO SalesOrder
包含最终方法,如AddItem(Product)
,如果Product
的DiscontinuedDate
位于SalesOrder.OrderDate
之前,则会引发异常。这听起来像是属于BLL的东西。
所以,我认为这意味着POCO类,我给实体框架应该更像DTO的?像SalesOrderDto
并与刚刚性质EmployeeDto
只是简单的小数据持有人也没有说,然后被映射的方法(可能使用AutoMapper)到BLL中的域对象,然后传递给表示层?
我在这里的正确轨道,或者我错过了什么。我感到困惑是因为DTO的想法非常合理,但我从未在实体框架中看到过它们的使用。
我有一个类似的问题,回来,并得到了一些可能对你有用的答案:http://stackoverflow.com/questions/11521192/placement-of-dto-poco-in-a-three-二线项目 – GrandMasterFlush