请耐心等待我是linq的新手,对于我不理解的一些错误有疑问,我们将不胜感激。
代码:
public class AOAPlusChildModel
{
public List<string> LongName { get; set; }
public List<string> Text { get; set; }
public List<string> ProductId { get; set; }
public static List<AOAPlusChildModel> GetChildProducts()
{
List<AOAPlusChildModel> cp = new List<AOAPlusChildModel>();
List<AoaUserDefinedVWGetAOAPlusProducts> ChildProductsLists = AoaSvcClient.Client.Context.AoaUserDefinedVWGetAOAPlusProductss.Where(a => a.MasterProductFlag == false && a.Affiliate == "VA").ToList();
var childProducts = ChildProductsLists.SelectMany(p => p.LongName, (id, childtext) =>
new { ProductId = id.ProductId, Text = childtext }).ToList();
cp = childProducts.ToList();
return cp;
}
}
答案 0 :(得分:2)
您的变量wsgi.py
是cp
,但linq查询正在投射匿名类型。而不是创建新的匿名类型创建新的List<AOAPlusChildModel>
AOAPlusChildModel
跟随错误的原因是您执行return ChildProductsLists.SelectMany(p => p.LongName,
(id, childtext) =>
new AOAPlusChildModel {
ProductId = id.ProductId,
Text = childtext }).ToList();
,它现在基本上返回一个字符串集合 - 您尝试将此字符串集合分配为新的ChildProductsLists.SelectMany(p => p.LongName)
对象,该对象不会保留{{1} }}属性,但AOAPlusChildModel
属性。
我认为你的模型应该是这样的:
string