【发布时间】:2010-07-08 18:57:37
【问题描述】:
我正在使用 Linq 创建一个对象列表。下面显示的是我正在使用的表达式。我遇到的问题是,在运行时它对“RawXMLDocument = XElement.Parse(t.Message)”行不满意。 “RawXMLDocument”属性采用 XElement。有没有办法将 XML 的字符串版本(保存在 Message 中)转换为 XElement,如下所示?
var transactionList = (from t in ctx.Transactions
where t.MessageRecievedAt >= Start && t.MessageRecievedAt <= End
select new TerminalTransactionMessage
{
DeviceId = t.DeviceId,
RawXMLDocument = XElement.Parse(t.Message),
TransactionTime = t.EventTime_Local
}).ToList();
【问题讨论】:
-
运行时对此有何“不满意”?一个简单的
var q = Enumerable.Range(0,10).Select(i => new { foo = XElement.Parse("<t>"+i.ToString()+"</t>") });在这里工作得很好。 -
错误是:LINQ To Entities 无法识别方法 'System.Xml.Linq.XElement Parse(System.string)' 方法,并且此方法无法转换为存储表达式。