2013-04-28 13 views
0

我正在嘗試將DRY(不要重複自己)應用於我的MVC4程序。MVC4和C中的不同控制器中的重構LINQ查詢#

我在兩個不同的控制器中有兩個LINQ查詢。

查詢是一樣的。

使查詢對兩個控制器都可用的最佳方式是什麼?

非常感謝您的建議。

+0

你有BL層嗎? – Artless 2013-04-28 19:55:31

+0

不,我正在使用實體框架數據模型並使用LINQ查詢訪問控制器中的數據。 – user1547361 2013-04-28 20:03:55

+0

從你的控制器?不是一個好主意。如果您決定讓WebAPI爲移動應用程序執行完全相同的操作,那麼您會重複很多。控制器應該只是一個路由器,在BL層中調用相關的方法。 BL層是應該完成所有邏輯的層,而不是控制器。 – Artless 2013-04-28 20:06:10

回答

0

根據你所說的,LINQ語句是一樣的,對嗎?例如,獲取活躍的小時工僱員名單,庫存清單項目等。

在這種情況下,最好將這些常用方法添加到實體模型中。如果你生成了這些類,它們就是部分類,所以你只需用你需要檢索常用數據的例程創建一個部分類。這個類將放在您的模型文件夾中。它看起來像這樣...

namespace MyNamespace.Models 
{ 
    public partial class MyEntities 
    { 

     IQueryable<InventoryItem> InStockInventoryItems() 
     { 
      return this.InventoryItems.Where(m => m.Quantity > 0); 
     } 

    } 
} 
+0

謝謝。我會嘗試一下並提供更新。 – user1547361 2013-04-29 00:27:27