代码之家  ›  专栏  ›  技术社区  ›  Zachary Scott

C将XML从LINQ输出到Response.OutputStream

  •  0
  • Zachary Scott  · 技术社区  · 15 年前

    是否有更简单的方法将LINQ to SQL表输出为XML(最终输出到网页?)不幸的是,我没有使用MVC,但是我可以在我的ASPXC页面中引用它。

    我有这个:

    var myView = (from x in db.myTable 
                  where x.Name.Contains("Bob") 
                  select new person {Name = x.Name, Job = x.Job).Take(100);
    

    并希望输出类似的内容(现在不必精确):

    <?xml version="1.0" encoding="utf-8"?> 
    <myView xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
        <person><Name>Bob Smith</Name><Job>Machinist</Job></person>
        <person><Name>Bob Smithers</Name><Job>Cartoonist</Job></person>
        <person><Name>Rebob Wilson</Name><Job>Mason</Job></person>
    </myView> 
    

    我试过这样做:

    TextWriter myTW = new StreamWriter( Response.OutputStream, Encoding.UTF8);
    XmlTextWriter xmlTW = new XmlTextWriter(myTW);
    XmlSerializer myS = new XmlSerializer( typeof( person));
    myS.Serialize( xmlTW, myView);
    

    但我得到一个“无法序列化iQuery”。但是,我尝试了ToArray、ToList、AsEnumerable等,只得到了mys.serialize()的“出错”。

    有什么想法吗?希望有一种类似于返回XML(myview)的方法;

    1 回复  |  直到 15 年前
        1
  •  2
  •   Darin Dimitrov    15 年前

    试试这个:

    var result = myView.ToArray();
    var serializer = new XmlSerializer(result.GetType());
    serializer.Serialize(Response.OutputStream, result);