在混合LINQ到SQL和LINQ到XML,我曾經是能夠做這樣的事情:從Linq-to-Entities中選擇Linq-to-XML?
XElement xml = new XElement("People");
xml.Add(from p in Context.People
select new XElement("Person",
new XElement("Id", p.Id),
new XElement("Name", p.Name)));
在把一些東西EF,我現在得到此異常:「只有參LINQ to Entities支持構造函數和初始值設定項。「
這使我相信我現在需要做的是這樣的:
XElement xml = new XElement("People");
var peopleResults = Context.People.Select(p => { p.Id, p.Name }).ToList();
xml.Add(from p in peopleResults
select new XElement("Person",
new XElement("Id", p.Id),
new XElement("Name", p.Name)));
這是我唯一的選擇,現在,還是有其他的代碼來表達這種更清潔的方式?
在表中創建一個行的列表會在這裏過大,因爲這個列表從來沒有真正用於枚舉之外。 – 2012-02-13 18:42:59
@JeffMercado正確。 ToList在這種情況下是過分的,因爲查詢在Add中被消耗,並且不需要考慮順從。 – 2012-02-13 19:58:43