OWF_ManagersNextTwoMonths
返回类型是OWF_ManagerRelationshipViewModel
的一个副本,它在其中注释掉了一些东西。此方法是使用OWF_ManagerRelationshipViewModel
作为返回类型的原始修改版本。目标是消除一个代理类以减少返回的记录数。为什么这种类型不能分配给参数类型?
另一个区别是在return语句中传入新的OWF_ManagersNextTwoMonthsViewModel
到automapper
。
我在managerListFinal.Add(item);
和(managerListFinal)
的automapper
部分返回类型的项目下得到一个红色波形。
在managerListFinal.Add(item);
的第一个红色波浪线说:
'参数类型Jupiter.Core.Model.OWF_ManagerRelationship不 分配给参数类型 Jupiter.Core.Model.OWF_ManagersNextTwoMonthsViewModel'。
第二红色波浪线在(managerListFinal)
说:
'参数类型Jupiter.Core.Model.OWF_ManagersNextTwoMonthsViewModel 是不能分配给参数类型 Jupiter.Core.Model.OWF_ManagerRelationship'。
我试着也返回下面的automapper
回报managerListFinal
,却得到了一个消息,说同样的事情,因为它没有对上面说的第一种使用automapper
。
新的OWF_ManagersNextTwoMonthsViewModel
是在没有Document请求列表的情况下创建的,目的是为了不返回这些记录。我认为它会起作用,因为它与原来的OWF_ManagerRelationshipViewModel
非常相似。
我认为automapper
返回将返回我所需要的,如果它工作正常。我正在尝试获取onsites日期,目标日期,用户名和经理类型。在下面的方法中使用现场和目标日期,而DisplayName,Manager Type和Users显示在视图的网格中。
我认为这将会像复制viewmodel并忽略它的doc请求列表部分一样简单。我不明白为什么编译器不喜欢这个或者如何纠正它。
原始OWF_ManagerRelationshipViewModel:
public class OWF_ManagerRelationshipViewModel
{
public OWF_ManagerRelationshipViewModel()
{
OWF_Onsites = new List<OWF_OnsitesViewModel>();
OWF_DocumentRequestList = new List<OWF_DocumentRequestListViewModel>();
}
public int RelationshipId { get; set; }
[Required]
public int ManagerId { get; set; }
public string Users { get; set; }
public string ManagerType { get; set; }
[Required]
public string DisplayName { get; set; }
public string CurrentState { get; set; }
public Nullable<bool> IsActive { get; set; }
public IEnumerable<OWF_AccessGroupViewModel> UsernameList { get; set; }
public virtual ICollection<OWF_DocumentRequestListViewModel> OWF_DocumentRequestList { get; set; }
public virtual ICollection<OWF_OnsitesViewModel> OWF_Onsites { get; set; }
}
我的新OWF_ManagersNextTwoMonthsViewModel:
带有红色波浪线 public class OWF_ManagersNextTwoMonthsViewModel
{
public OWF_ManagersNextTwoMonthsViewModel()
{
//OWF_DocumentRequestList = new List<OWF_DocumentRequestListViewModel>();
OWF_Onsites = new List<OWF_OnsitesViewModel>();
}
public int RelationshipId { get; set; }
[Required]
public int ManagerId { get; set; }
public string Users { get; set; }
public string ManagerType { get; set; }
[Required]
public string DisplayName { get; set; }
public string CurrentState { get; set; }
public Nullable<bool> IsActive { get; set; }
public IEnumerable<OWF_AccessGroupViewModel> UsernameList { get; set; }
//public virtual ICollection<OWF_DocumentRequestListViewModel> OWF_DocumentRequestList { get; set; }
public virtual ICollection<OWF_OnsitesViewModel> OWF_Onsites { get; set; }
}
方法:
public IEnumerable<OWF_ManagersNextTwoMonthsViewModel> GetAllExistingManagersByCurrentDate()
{
var managers = _relationshipRepo.GetAll();
var managerListFinal = new List<OWF_ManagersNextTwoMonthsViewModel>();
var year = DateTime.Now.Year;
var prevYear = DateTime.Now.AddYears(-1).Year;
foreach (var item in managers)
{
foreach (var onsite in item.OWF_Onsites.Where(x => x.OnsiteDate != null))
{
if (Convert.ToDateTime(onsite.OnsiteDate).Month == DateTime.Now.Month && Convert.ToDateTime(onsite.OnsiteDate).Year == year ||
onsite.TargetMonth == DateTime.Now.Month && onsite.OnsiteDate == null && Convert.ToDateTime(onsite.OnsiteDate).Year == year ||
onsite.TargetMonth == (DateTime.Now.Month + 1) && onsite.OnsiteDate == null && Convert.ToDateTime(onsite.OnsiteDate).Year == year ||
Convert.ToDateTime(onsite.OnsiteDate).Month == (DateTime.Now.Month + 1) && Convert.ToDateTime(onsite.OnsiteDate).Year == year ||
Convert.ToDateTime(onsite.OnsiteDate).Month == DateTime.Now.Month && Convert.ToDateTime(onsite.OnsiteDate).Year == prevYear ||
onsite.TargetMonth == DateTime.Now.Month && onsite.OnsiteDate == null && Convert.ToDateTime(onsite.OnsiteDate).Year == prevYear ||
onsite.TargetMonth == (DateTime.Now.Month + 1) && onsite.OnsiteDate == null && Convert.ToDateTime(onsite.OnsiteDate).Year == prevYear ||
Convert.ToDateTime(onsite.OnsiteDate).Month == (DateTime.Now.Month + 1) && Convert.ToDateTime(onsite.OnsiteDate).Year == prevYear)
{
managerListFinal.Add(item);
}
}
}
//return Mapper.Map<IEnumerable<OWF_ManagerRelationship>, IEnumerable<OWF_ManagersNextTwoMonthsViewModel>>(managerListFinal);
return managerListFinal;
}
我是懒得看整个臃肿的文字,所以我开始寻找questionmarks'?'在文本以阅读完整的实际问题。结果发现除标题外没有其他问题。我建议你重新阅读你的文字并编辑问题。 – grek40
我对格式进行了一些(小的)修改,使其更容易阅读,但正如@ grek40所说的,您可能想重新审视这个问题并尝试使其更清晰。 – levelonehuman