我的模型:
public class StatusDetailsViewModel
{
public string Status { get; set; }
public long CountNo { get; set; }
}
我获取数据的函数:
public List<StatusDetailsViewModel> CheckMeetingStatus(long actionId)
{
List<StatusDetailsViewModel> statusDetails;
var statuses = _igniteDb.myTable.Where(a => a.actionId == actionId)
.GroupBy(a => new { a.Status, a.ElectionGroup }).GroupBy(c => new { c.Key.Status})
.Select(b => new { Status = b.Key.Status, CountNo = b.Count()}).ToList();
//How to Map statuses to statusDetails??
return statusDetails;
}
我一直在尝试使用自动映射器来实现这一点。但我不确定如何配置我的映射器。有任何想法吗?
最佳答案
为什么你必须在你的代码中映射。您可以创建 StatusDetailsViewModel
的对象,而不是创建匿名类型。将选择语句更改为 Select(b => new StatusDetailsViewModel() { Status = b.Key.Status, CountNo = b.Count()}
如果您想使用AutoMapper,那么您应该在定义 map /配置文件时定义源和目标类型。您不能使用 AutoMapper 映射匿名类型。
用于创建 StatusDetailsViewModel
对象的代码(不使用 Automapper,因为您不需要您要求的代码)
public List<StatusDetailsViewModel> CheckMeetingStatus(long actionId)
{
List<StatusDetailsViewModel> statusDetails;
var statuses = _igniteDb.myTable.Where(a => a.actionId == actionId)
.GroupBy(a => new { a.Status, a.ElectionGroup }).GroupBy(c => new { c.Key.Status})
.Select(b => new StatusDetailsViewModel () { Status = b.Key.Status, CountNo = b.Count()}).ToList();
//How to Map statuses to statusDetails??
return statusDetails;
}
关于C# AutoMapper,如何映射组数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50366529/