Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 将从LINQ(IQueryable)检索的数据转换为XML?_Entity Framework_Linq To Entities_Linq To Xml_Iqueryable - Fatal编程技术网

Entity framework 将从LINQ(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???可能是最好的选择。可以使用在单个语句中创

我想这是可能的?基本上,我正在使用LINQ LINQ2Entities接收实体框架数据,并将其返回到IQUERYABLE。一旦我获取了这些数据,我需要将其转换为内存流中的XML和硬盘上的物理文件-streamwriter

有人知道这是否可能吗

非常感谢您的帮助

我是否需要使用LINQtoXML来实现这一点

任何人知道的例子或教程都会很棒

再次感谢

编辑

经过一点调查,我想我需要一个用于LINQ2Entities的XML序列化程序/IQueryable???

可能是最好的选择。可以使用在单个语句中创建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);
}
这可能是最好的选择。可以使用在单个语句中创建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投影数据。我试图在经过编辑的答案中反映这一点。