我在我的應用程序中有一個非常簡單的存儲庫模式,但是現在我有一個異議,我需要返回Code First Model和一些額外的數據。見下文。實體框架何時創建自定義DTO?
public IEnumerable<User> GetUsersWithinLocation(DbGeography geography)
我真想包括在返回的模式是用戶實例,從地理的距離(以英里或其他)。
下面是我看到的選項:
選項1:我可以返回User對象名單,沒有距離,重新計算第二次的前端,並避免塞滿了我的數據模型,但似乎有點多餘..並且,這可能在某些情況下是不可能的,我只是覺得這種方法是錯誤的。
選項2:另一種選擇是創建一個新的DTO,該DTO由用戶構成或繼承,例如UserDistance對象。這會給我所需的一切,但是我會爲此創建一個新的存儲庫嗎?如果每種模型類型返回的數據有很多變化,我可以認爲這在大型應用程序中保持不穩定。
選項3:實現某種動態的ExtraData ViewBag排序圖層,我可以隨意傳遞額外的數據以及DTO。這會在我的圖層之間產生更緊密的耦合,因爲名稱必須是已知的。我也不太喜歡這種方法。
任何指導極大的讚賞。
我會用'User'和距離創建'Model',類似於** Option 2 **,但不創建存儲庫,至少您需要存儲此信息。如果只是在某個時刻使用它,那麼你可以按照我剛纔所說的去做。希望我的意見能幫助你做出決定祝你好運!!! – ecampver 2013-03-10 06:13:19
查看下面的答案...我基本上使用3的靈活性,強類型2,而不需要創建額外的對象。讓我知道如果你喜歡它(: – rodmjay 2013-03-10 07:09:00
檢查我的答案下面,我認爲這就是你想要的:P – ecampver 2013-03-10 21:54:09