在我的控制器中,我会有这样的方法:
public ActionResult GetItemsFromServiceLayer(someValue)
{
using (var unitOfWork = new UnitOfWork(ApplicationDbContext)
{
var result = Service.GetItems(unitOfWork, someValue);
return View("SomeView", result);
}
}
在我的服务层中调用此方法:
public List<ItemViewModel> GetItems(IUnitOfWork unitOfWork, string someValue)
{
var listOfItems = unitOfWork.ItemRepo.GetSpecificSetOfItems(someValue).ToList();
foreach(var item in listOfItems)
{
// Do stuff...
}
return listOfItems;
}
ReSharper总是建议我将我的服务层方法GetItems
更改为static
,这让我更少考虑是否应该,但更多关于它是否安全
通过使这个静态我可能会在多个用户尝试访问相同的方法时遇到奇怪的连接错误,或者我会在这里清楚,因为UnitOfWork
作为参数发送而不是共享实例