簡體   English   中英

如何在通用存儲庫中使用自動映射器投影來避免循環引用?

[英]How do I use Automapper Projections in a Generic Repository to avoid circular references?

我在MVC應用程序中使用通用存儲庫,並且還使用自動映射器在視圖模型之間進行映射。 我之所以需要這樣做,是為了避免模型中的循環引用,並且還利用了數據注釋等。我已經改用Generic Repository模式和unit of work但是我似乎不再能夠使用Automapper的.ProjectTo

這是我的代碼,由KendoUI MVC網格調用,它返回數據列表(具有關系並因此具有循環引用)。

public ActionResult GetItems([DataSourceRequest] DataSourceRequest request)
{
    var item = unitOfWork.ItemRepository.Get();
    var result = item.ToDataSourceResult(request);
    return Json(result);
}

為了避開循環引用,我使用了一個視圖模型,這也使我可以對數據進行其他控制。 我發現它不會讓我使用project。

public ActionResult GetItems([DataSourceRequest] DataSourceRequest request)
{
    var item = unitOfWork.ItemRepository.Get().ProjectTo<ItemViewModel>;
    var result = item.ToDataSourceResult(request);
    return Json(result, JsonRequestBehavior.AllowGet);
}

Intellisense返回以下錯誤:

無法將方法組分配給隱式類型的變量

出了什么問題,還有另外一種方法可以做到這一點嗎?

我認為您只是在ProjectTo<>()調用的末尾缺少括號:

var item = unitOfWork.ItemRepository.Get().ProjectTo<ItemViewModel>();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM