我是實體框架的新手(代碼優先,如果重要)。正如我一直在使用它,我一直在構建我的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