0

我使用此代码在各个页面中选择 4 Last Record Of Database

public static List<Tour> GetLastTour()
{
    using (var Context = new MvcHghDbContext())
    {
        return (Context.Tours.Take(4).OrderByDescending(x=>x.Titl  e).ToList());
    }
}

如何在静态类的静态方法中使用工作单元模式?但是静态构造函数错误!这样的代码请帮助我:

public static class DropDownList{
    private  readonly ICatHotellService _catHotellService;
    private  readonly ICatTourismService _catTourismService;
    private  readonly ICatTourService _catTourService;
    private  readonly IUnitOfWork _uow;
    public DropDownList(ICatHotellService CatHotellService, IUnitOfWork ouw, ICatTourService CatTourService, ICatTourismService CatTourismService)
    {
        _uow=ouw;
        _catHotellService = CatHotellService;
        _catTourismService = CatTourismService;
        _catTourService = CatTourService;`
    }
}
4

2 回答 2

1
  • 您根本没有使用 UoW。UoW 意味着在请求调用期间将一个实例注入MvcHghDbContext到服务层的不同类中,而不是每次都直接实例化它,例如您的GetLastTour方法。
  • 不要在服务层中使用静态类。从它们中提取一个接口,让 IoC 容器管理它的生命周期。
  • ObjectFactory.GetInstance<>即使在静态类中,您也可以在任何地方使用服务定位器模式(例如调用)。这是一种反模式,应尽可能避免,因为现在 IoC 容器是您类中的依赖项。
于 2013-08-01T17:41:50.147 回答
1

简短的回答是,这是行不通的。静态类可能只有静态构造函数,这些构造函数在创建应用程序时由运行时调用。因此,这发生在配置依赖注入之前很久。最重要的是,您永远不应该在 Web 应用程序中拥有静态数据上下文,因为这些是由您的应用程序的所有用户共享的,因此使用相同数据上下文的两个用户将覆盖彼此的数据模型。

于 2013-08-01T17:15:05.217 回答