【问题标题】:Refactor LINQ queries in different controllers in MVC4 and C#在 MVC4 和 C# 的不同控制器中重构 LINQ 查询
【发布时间】:2013-04-28 19:54:10
【问题描述】:

我正在尝试将 DRY(不要重复自己)应用到我的 MVC4 程序。

我在两个不同的控制器中有两个 LINQ 查询。

查询是一样的。

使查询对两个控制器都可用的最佳方法是什么。

提前感谢您的建议。

【问题讨论】:

  • 你有BL层吗?
  • 不,我正在使用实体框架数据模型并使用 LINQ 查询访问控制器中的数据。
  • 直接来自您的控制器?不是一个很好的主意。如果您决定使用 WebAPI 来为移动应用程序执行完全相同的操作,那么您将重复很多次。控制器应该只是一个路由器,在你的 BL 层调用相关的方法。 BL 层应该负责所有的逻辑,而不是控制器。

标签: c# asp.net-mvc refactoring dry


【解决方案1】:

根据您所说的,LINQ 语句是相同的,对吗?例如,获取活跃的小时工列表、库存物品等。

在这种情况下,最好将这些常用方法添加到您的实体模型中。如果您生成了这些类,它们是部分类,因此您只需使用检索常用数据所需的例程创建一个部分类。此类将进入您的模型文件夹。它看起来像这样......

namespace MyNamespace.Models
{
    public partial class MyEntities
    {

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

    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多