[C#]万行,LinQ 连接排序表

标签: sql Linq SQLServer C#
发布时间: 2017/2/27 8:03:49
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有一个问题,不知道如何解决 SQL server 2012 中

我有 +5,000,000 行记录 (ID,链接),但当我查询的表 select N row 显示错误"Request timed out."

代码︰

public void _Read()
{

    LinQDataContext _DB = new LinQDataContext();

    var _img = _DB.HotelImages.Where(o => o.ID_Hotel == Hotel_DA.ID_Hotel);

    string _imghtml = "";
    foreach (var item in _img)
    {
        _imghtml = _imghtml + "<a href=''><img src='" + item.Url_Image + "' alt=''></a>";
    }

}

解决方法 1:

结合取只所需的列 (如已建议) 覆盖索引将导致性能方面的改善︰

索引︰

CREATE INDEX IX_ID_Hotel ON YourTable(ID_Hotel)
INCLUDE (Url_Image)

您还应该确保释放你的上下文。我建议你不要使用 concatenanting 字符串使用字符串生成器。

string html;
var builder = new StringBuilder();
using (LinQDataContext _DB = new LinQDataContext())
{

    var urls = _DB.HotelImages.Where(o => o.ID_Hotel == Hotel_DA.ID_Hotel)
               .Select(x => x.Url_Image);

    foreach (var url in urls)
    {
        builder.Append("<a href=''><img src='")
               .Append(url)
               .Append("'")
               .Append("alt=''></a>");
    }
}
html = builder.ToString();
官方微信
官方QQ群
31647020