2010-01-07 63 views
0

是否有一种更简单的方式将Linq转换为SQL表格(最终转换为网页?)不幸的是,我没有使用MVC,但我可以把它引用在我的ASPX C#页面。C#从Linq输出XML到Response.OutputStream

我有这样的:

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); 

但我得到一个“无法序列化iQueryable”。但是,我尝试了ToArray,ToList,AsEnumerable等,并简单地通过myS.Serialize()获取“发生错误”。

有什么想法?希望有一种方式像返回XML(myView);

回答

2

试试这个:

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

现在的工作就像一个魅力!谢谢。 – 2010-01-08 17:07:33