Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在通用存储库中使用Automapper投影来避免循环引用?_C#_Asp.net Mvc_Kendo Ui_Repository Pattern_Circular Reference - Fatal编程技术网

C# 如何在通用存储库中使用Automapper投影来避免循环引用?

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

我在MVC应用程序中使用了一个通用存储库,我还使用automapper在viewmodel之间进行映射。我之所以需要这样做,是为了避免模型中的循环引用,也为了利用数据注释等。我最近切换到了
通用存储库
模式和
工作单元
,但我似乎不再能够使用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>();