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