【发布时间】:2014-11-25 09:53:28
【问题描述】:
我有这段代码:
var xml = XDocument.Load(filePath);
var taxReturns = (from t in xml.Descendants("aangiftes").Elements()
where t.Name == "ib"
select new Domain.TaxReturn
{
FiscalNumber = t.Attribute("sofinr").Value,
Guid = Guid.Parse(t.Attribute("guid").Value),
LastFormOpen = t.Attribute("lastformview").Value,
Name = string.Empty,
TaxYear = t.GetAttributeValue<short>("belastingjaar"),
TaxForm = unitOfWork.TaxForms.FirstOrDefault(tf => tf.Code == t.Attribute("biljetsoort").Value),
}).ToArray();
当我运行这段代码时,我得到了这个异常:
LINQ to Entities 无法识别 System.Xml.Linq.XAttribute Attribute(System.Xml.Linq.XName)-method 方法,并且该方法无法转换为存储表达式
但是,当我将此行提取到方法中时,它可以正常工作。
有人可以解释这种行为吗?我不明白这种行为:/
【问题讨论】:
-
当您收到错误时,它正在尝试将
FirstOrDefault调用中的表达式转换为 SQL。 -
LINQ to SQL 在哪里发挥作用?您是说 LINQ to Entities 吗?
-
@BenRobinson 你能详细说明一下吗?
-
@Rik unitOfWork 是围绕 DbContext 的包装器。 unitOfWork 进入数据库
标签: c# linq linq-to-sql linq-to-xml