<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>幻想曲.Net &#187; linq</title>
	<atom:link href="http://yibin.us/tag/linq/feed" rel="self" type="application/rss+xml" />
	<link>http://yibin.us</link>
	<description>面朝大海，春暖花开</description>
	<lastBuildDate>Wed, 02 Jun 2010 14:32:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>RssReader(Linq to xml)</title>
		<link>http://yibin.us/archives/5905</link>
		<comments>http://yibin.us/archives/5905#comments</comments>
		<pubDate>Sun, 17 Feb 2008 06:51:00 +0000</pubDate>
		<dc:creator>幻想曲</dc:creator>
				<category><![CDATA[Develop]]></category>
		<category><![CDATA[linq]]></category>

		<guid isPermaLink="false">http://www.yibin001.com/?p=5905</guid>
		<description><![CDATA[准确地说谈不上是一个阅读器，因为目前只显示rss源的标题
首先用一个xml文档来存储一些rss列表，结构如下：
&#60;?xml version="1.0" encoding="utf-8" ?&#62;
&#60;feeds&#62;
    &#60;feed enable="true"&#62;
        &#60;site&#62;幻想曲.Net&#60;/site&#62;
        &#60;url&#62;http://www.yibin001.com&#60;/url&#62;
        &#60;rss&#62;http://www.yibin001.com/rss.axd&#60;/rss&#62;
    &#60;/feed&#62;
    &#60;feed enable="true"&#62;
        &#60;site&#62;大脑门&#60;/site&#62;
      [...]]]></description>
			<content:encoded><![CDATA[<p>准确地说谈不上是一个阅读器，因为目前只显示rss源的标题</p>
<p>首先用一个xml文档来存储一些rss列表，结构如下：<br /><code><br />
&lt;?xml version="1.0" encoding="utf-8" ?&gt;<br />
&lt;feeds&gt;<br />
    &lt;feed enable="true"&gt;<br />
        &lt;site&gt;幻想曲.Net&lt;/site&gt;<br />
        &lt;url&gt;http://www.yibin001.com&lt;/url&gt;<br />
        &lt;rss&gt;http://www.yibin001.com/rss.axd&lt;/rss&gt;<br />
    &lt;/feed&gt;<br />
    &lt;feed enable="true"&gt;<br />
        &lt;site&gt;大脑门&lt;/site&gt;<br />
        &lt;url&gt;http://www.iceapple.net&lt;/url&gt;<br />
        &lt;rss&gt;http://www.iceapple.net/syndication.axd&lt;/rss&gt;<br />
    &lt;/feed&gt;<br />
    &lt;feed enable="true"&gt;<br />
        &lt;site&gt;CnBlogs&lt;/site&gt;<br />
        &lt;url&gt;http://www.cnblogs.com&lt;/url&gt;<br />
        &lt;rss&gt;http://www.cnblogs.com/rss&lt;/rss&gt;<br />
    &lt;/feed&gt;<br />
    &lt;feed enable="true"&gt;<br />
        &lt;site&gt;BlueIdea&lt;/site&gt;<br />
        &lt;url&gt;&lt;/url&gt;<br />
        &lt;rss&gt;http://bbs.blueidea.com/rss.php&lt;/rss&gt;<br />
    &lt;/feed&gt;<br />
&lt;/feeds&gt;
</pre>
<p>enable属性表示该站点是否有效,false表示无效</p>
<p>展示页面中的dropdownlist数据源就来自于此 <br /><a href="http://www.yibin001.com/wp-content/uploads/20080217/135541_2008_02_17_135251.png"  class="thickbox"><img src="http://www.yibin001.com/wp-content/uploads/20080217/135541_2008_02_17_135251.png" class="img"  /></a></p>
<p>选择一个rss源，点击read,显示<br /><a href="http://www.yibin001.com/wp-content/uploads/20080217/135613_2008_02_17_135302.png"  class="thickbox"><img src="http://www.yibin001.com/wp-content/uploads/20080217/135613_2008_02_17_135302.png" class="img"  /></a></p>
<p><code></p>
<p>public class RssItem<br />
{</p>
<p>    public RssItem()<br />
    {<br />
        //<br />
        // TODO: Add constructor logic here<br />
        //<br />
    }<br />
    public RssItem(string title, string url, DateTime date)<br />
    {<br />
        Title = title;<br />
        URL = url;<br />
        PubDate = date;<br />
    }<br />
    public string Title { get; set; }<br />
    public string URL { get; set; }<br />
    public DateTime PubDate { get; set; }<br />
    public List&lt;RssItem&gt; GetList(string rssurl)<br />
    {<br />
        List&lt;RssItem&gt; list = new List&lt;RssItem&gt;();<br />
        //try<br />
        //{<br />
            XDocument doc = XDocument.Load(rssurl);<br />
            var feeds = from feed in doc.Descendants("item")<br />
                        select new RssItem<br />
                        {<br />
                            PubDate = Convert.ToDateTime(feed.Element("pubDate").Value),<br />
                            Title = feed.Element("title").Value,<br />
                            URL = feed.Element("link").Value<br />
                        };<br />
            list = feeds.ToList();<br />
        //}<br />
        //catch<br />
        //{</p>
<p>        //}<br />
        return list;<br />
    }<br />
}</p>
</pre>
<p>因暂无.net 3.5的空间，故无法放出演示了 <br /><a href="http://www.yibin001.comhttp://www.yibin001.com/wp-content/uploads/20080217/135729_RssReader.rar" target="_blank">http://www.yibin001.comhttp://www.yibin001.com/wp-content/uploads/20080217/135729_RssReader.rar</a></p>
]]></content:encoded>
			<wfw:commentRss>http://yibin.us/archives/5905/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Linq to sql之简单的分页</title>
		<link>http://yibin.us/archives/5903</link>
		<comments>http://yibin.us/archives/5903#comments</comments>
		<pubDate>Fri, 15 Feb 2008 09:20:00 +0000</pubDate>
		<dc:creator>幻想曲</dc:creator>
				<category><![CDATA[Develop]]></category>
		<category><![CDATA[linq]]></category>

		<guid isPermaLink="false">http://www.yibin001.com/?p=5903</guid>
		<description><![CDATA[费话不多说，主要是Linq中的Skip及Take这二个扩展方法
   int RecordCount = 0;
    int PageCount = 1;
    DataClassesDataContext data = new DataClassesDataContext();
    int SkipIndex = 0;
    private string _PageString = "";
    public string PageString
    {
        get [...]]]></description>
			<content:encoded><![CDATA[<p>费话不多说，主要是Linq中的Skip及Take这二个扩展方法<br /><code><br />
   int RecordCount = 0;<br />
    int PageCount = 1;<br />
    DataClassesDataContext data = new DataClassesDataContext();<br />
    int SkipIndex = 0;<br />
    private string _PageString = "";<br />
    public string PageString<br />
    {<br />
        get {<br />
            return _PageString;<br />
        }<br />
        set {<br />
            _PageString = value;<br />
        }<br />
    }<br />
    protected void Page_Load(object sender, EventArgs e)<br />
    {<br />
        RecordCount = data.Orders.Count();  //得到记录数<br />
        PageCount = (int)Math.Ceiling((decimal)RecordCount / 10);   //以10条记录为一页,计算总页码<br />
        int page = 1;<br />
        if (!string.IsNullOrEmpty(Request.QueryString["page"]))<br />
            page = Convert.ToInt16(Request.QueryString["page"]);<br />
        SkipIndex = (page-1) * 10;   //计算起始索引,以供后面的Skip扩展方法之用</p>
<p>        //拼接分页代码<br />
        StringBuilder sb = new StringBuilder();<br />
        for (int i = 1; i &lt; PageCount; i++)<br />
        {<br />
            sb.AppendFormat(@" &lt;a href=""?page={0}""&gt;{0}&lt;/a&gt; ",i);<br />
        }<br />
        _PageString = sb.ToString();<br />
        bind();<br />
    }<br />
    void bind()<br />
    {<br />
        //奇妙的Linq表达式<br />
        var q = (from c in data.Orders select new<br />
                { CustomerID = c.CustomerID, ShipAddress=c.ShipAddress,ID = c.OrderID}<br />
               ).Skip(SkipIndex).Take(10);<br />
        this.GridView1.DataSource = q;<br />
        this.GridView1.DataBind();<br />
    }
</pre>
<p>当显示的是第一页时,看linq表达式中为我们动态生成了什么样的语句:<br /><b><br />SELECT TOP 10 [t0].[CustomerID], [t0].[ShipAddress], [t0].[OrderID] AS [ID]<br />FROM [dbo].[Orders] AS [t0]<br /></b><br />是不是觉得非常熟悉?<br />相当Easy</p>
]]></content:encoded>
			<wfw:commentRss>http://yibin.us/archives/5903/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
