Entity framework 将从LINQ(IQueryable)检索的数据转换为XML?
我想这是可能的?基本上,我正在使用LINQ LINQ2Entities接收实体框架数据,并将其返回到IQUERYABLE。一旦我获取了这些数据,我需要将其转换为内存流中的XML和硬盘上的物理文件-streamwriter 有人知道这是否可能吗 非常感谢您的帮助 我是否需要使用LINQtoXML来实现这一点 任何人知道的例子或教程都会很棒 再次感谢 编辑 经过一点调查,我想我需要一个用于LINQ2Entities的XML序列化程序/IQueryable???可能是最好的选择。可以使用在单个语句中创建XML树,如:Entity framework 将从LINQ(IQueryable)检索的数据转换为XML?,entity-framework,linq-to-entities,linq-to-xml,iqueryable,Entity Framework,Linq To Entities,Linq To Xml,Iqueryable,我想这是可能的?基本上,我正在使用LINQ LINQ2Entities接收实体框架数据,并将其返回到IQUERYABLE。一旦我获取了这些数据,我需要将其转换为内存流中的XML和硬盘上的物理文件-streamwriter 有人知道这是否可能吗 非常感谢您的帮助 我是否需要使用LINQtoXML来实现这一点 任何人知道的例子或教程都会很棒 再次感谢 编辑 经过一点调查,我想我需要一个用于LINQ2Entities的XML序列化程序/IQueryable???可能是最好的选择。可以使用在单个语句中创
using (ContactEntities context = new ContactEntities()) {
XDocument xml = new XDocument(
new XElement("contacts",
from contact in context.Contacts
orderby contact.ContactId
select new XElement("contact",
new XAttribute("contactId", contact.ContactId),
new XElement("firstName", contact.FirstName),
new XElement("lastName", contact.LastName))));
xml.Save(yourStream);
}
这可能是最好的选择。可以使用在单个语句中创建XML树,如:
using (ContactEntities context = new ContactEntities()) {
XDocument xml = new XDocument(
new XElement("contacts",
from contact in context.Contacts
orderby contact.ContactId
select new XElement("contact",
new XAttribute("contactId", contact.ContactId),
new XElement("firstName", contact.FirstName),
new XElement("lastName", contact.LastName))));
xml.Save(yourStream);
}
默认情况下,实体类是数据协定,这意味着可以根据其包含的字段对其进行序列化:
默认情况下,实体类是数据协定,这意味着可以根据其包含的字段对其进行序列化:
我知道这个问题是个老问题,但我想展示我对这个问题的解决方案
public static string CreateXml<T>(IQueryable<T> thisQueryable)
{
var thisList = thisQueryable.ToList();
var xmlResult = "";
using (var stringWriter = new StringWriter())
{
using (var xmlWriter = new XmlTextWriter(stringWriter))
{
var serializer = new XmlSerializer(typeof(List<T>));
serializer.Serialize(xmlWriter, thisList);
}
xmlResult = stringWriter.ToString();
}
return xmlResult;
}
希望这对未来的访问者有所帮助。我知道这个问题很老了,但我想展示一下我对这个问题的解决方案
public static string CreateXml<T>(IQueryable<T> thisQueryable)
{
var thisList = thisQueryable.ToList();
var xmlResult = "";
using (var stringWriter = new StringWriter())
{
using (var xmlWriter = new XmlTextWriter(stringWriter))
{
var serializer = new XmlSerializer(typeof(List<T>));
serializer.Serialize(xmlWriter, thisList);
}
xmlResult = stringWriter.ToString();
}
return xmlResult;
}
希望这对未来的访客有所帮助。谢谢!但是这是使用LINQtoXML创建XML,我如何将已经存在于SQL Server中的数据从LINQ2实体转换为XML。@Martin,您只需要从IQUERYABLE投影数据。我试着在我编辑过的答案中反映这一点。谢谢!但是这是使用LINQtoXML创建XML,我如何将已经存在于SQL Server中的数据从LINQ2实体转换为XML。@Martin,您只需要从IQUERYABLE投影数据。我试图在经过编辑的答案中反映这一点。