Ниже приведены две модели ViewModels, которые мы используем на сайте ASP MVC3, который мы создаем. В приведенном ниже коде, я пытаюсь заполнить свойство IList
свойства AgentIdDetail
переменной AgentWithTraining
с именем bigAgent
.Невозможно инициализировать свойство списка ASP MVC3 ViewModel
Чтобы лучше проиллюстрировать:
bigAgent
является AgentWithTraining
AgentWithTraining
имеет объект AgentIdDetail
ICollection
списка как свойство AgentIdDetail
имеют объект IList
списка по имени TradingPartner
public class AgentWithTraining
{
public Monet.Models.Agent Agent { get; set; }
public ICollection<AgentProdTrainDetail> AgentProdTrainDetails { get; set; }
public ICollection<AgentIdDetail> AgentIdDetails { get; set; }
}
public class AgentIdDetail
{
public string AgentId { get; set; }
public string CompanyCode { get; set; }
public IList<string> TradingPartners { get; set; }
}
The проблемой является следующая строка кода:
bigAgent.AgentIdDetails = new AgentIdDetail();
Это дает мне ошибку:
Cannot implicitly convert type 'Monet.ViewModel.AgentIdDetail' to 'System.Collections.Generic.ICollection<Monet.ViewModel.AgentIdDetail>'. An explicit conversion exists (are you missing a cast?)
Может кто-нибудь объяснить, как мне нужно идти о инициализации bigAgent.AgentIdDetails
? Ниже приведен полный раздел кода, который я использую, на всякий случай, который полезен.
//Grab Trading partner information and add it to 'trainlist' object
List<AgentIdToTradingPartner>tradingParter = new List<AgentIdToTradingPartner>();
var symNumToAgId = from s in db.SymetraNumberToAgentId
where s.SymetraNumber == id
select s;
//*******************************************
//This line is causing the problem
//*******************************************
bigAgent.AgentIdDetails = new AgentIdDetail();
foreach (var s in symNumToAgId)
{
AgentIdDetail item = new AgentIdDetail();
item.AgentId = s.AgentId;
item.CompanyCode = s.CompanyCode;
tradingParter = db.AgentIdToTradingPartner
.Where(r => r.AgentId == s.AgentId).ToList();
item.TradingPartners = new List<string>();
foreach (var t in tradingParter)
{
item.TradingPartners.Add(t.TradingPartner.ToString());
}
bigAgent.AgentIdDetails.Add(item);
}