LINQ to Entities无法识别方法' Int32 Parse(System.String)'为什么?

时间:2014-07-31 18:24:19

标签: c# xml entity-framework

我有代码

 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。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

我建议您在foreach循环中调用Add方法之前使用Int32.Parse方法。您可以将两者保存为局部变量(值和ID),并在同一查询中使用它们。