我有代码
foreach (XElement t in selxml.Elements("Type"))
printxml.Add(new XElement("Type",
new XAttribute("TypeID", t.Attribute("ID").Value),
new XAttribute("TypeName", (from pt in fdb.PrintTypes where pt.PrintTypeID == Int32.Parse(t.Attribute("ID").Value) select pt.Name).SingleOrDefault()),
new XAttribute("Value", t.Attribute("Value").Value),
new XAttribute("ValueName", (from pti in fdb.PrintTypeItems
where pti.Value == Int32.Parse(t.Attribute("Value").Value) &&
pti.PrintTypeID == Int32.Parse(t.Attribute("ID").Value)
select pti.Name).SingleOrDefault())));
和VS说
LINQ to Entities无法识别方法' Int32 解析(System.String)'方法,这个方法无法翻译 进入商店表达。
为什么LINQ to Entities?这是Linq to XML。我该如何解决这个问题?
答案 0 :(得分:3)
我建议您在foreach循环中调用Add方法之前使用Int32.Parse方法。您可以将两者保存为局部变量(值和ID),并在同一查询中使用它们。