C# 如何在通用存储库中使用Automapper投影来避免循环引用?
我在MVC应用程序中使用了一个通用存储库,我还使用automapper在viewmodel之间进行映射。我之所以需要这样做,是为了避免模型中的循环引用,也为了利用数据注释等。我最近切换到了C# 如何在通用存储库中使用Automapper投影来避免循环引用?,c#,asp.net-mvc,kendo-ui,repository-pattern,circular-reference,C#,Asp.net Mvc,Kendo Ui,Repository Pattern,Circular Reference,我在MVC应用程序中使用了一个通用存储库,我还使用automapper在viewmodel之间进行映射。我之所以需要这样做,是为了避免模型中的循环引用,也为了利用数据注释等。我最近切换到了通用存储库模式和工作单元,但我似乎不再能够使用Automapper的.ProjectTo 这是我的代码,由KendoUI MVC网格调用,它返回一个数据列表(它有一个关系,因此循环引用) 为了绕过循环引用,我使用了viewmodel,这还允许我对数据进行额外的控制。我发现它不允许我使用project来创建 pu
通用存储库
模式和工作单元
,但我似乎不再能够使用Automapper的.ProjectTo
这是我的代码,由KendoUI MVC网格调用,它返回一个数据列表(它有一个关系,因此循环引用)
为了绕过循环引用,我使用了viewmodel,这还允许我对数据进行额外的控制。我发现它不允许我使用project来创建
public ActionResult GetItems([DataSourceRequest] DataSourceRequest request)
{
var item = unitOfWork.ItemRepository.Get().ProjectTo<ItemViewModel>;
var result = item.ToDataSourceResult(request);
return Json(result, JsonRequestBehavior.AllowGet);
}
PublicActionResult GetItems([DataSourceRequest]DataSourceRequest请求)
{
var item=unitOfWork.ItemRepository.Get().ProjectTo;
var result=item.ToDataSourceResult(请求);
返回Json(结果,JsonRequestBehavior.AllowGet);
}
Intellisense返回以下错误:
无法将方法组分配给隐式类型变量
出了什么问题?还有其他方法吗?我想您只是缺少了
ProjectTo()
调用末尾的括号:
var item = unitOfWork.ItemRepository.Get().ProjectTo<ItemViewModel>();
var item=unitOfWork.ItemRepository.Get().ProjectTo();
var item = unitOfWork.ItemRepository.Get().ProjectTo<ItemViewModel>();