【问题标题】:Can i filter Table from LinqToSQL?我可以从 LinqToSQL 过滤表吗?
【发布时间】:2014-10-01 03:53:11
【问题描述】:

美好的一天!

我通过 LinqToSql 加载一些大表。 我可以下载这张表的一部分吗?例如,加载表 where row.dt

我是这样做的:

Infrastructure.Table = Globals.DataContext.GetTable<SomeTable>();

但仍然很大 - 100 000+ 行。

我可以这样做吗:

DateTime filterDate=new DateTime(2014,5,1,0,0,0);
Infrastructure.Table = Globals.DataContext.GetTable<SomeTable>().Where(item=>item.dt<=filterDate);

我不能这样做,因为我应该将它转换为 IQueryable。 此结果表仅包含 item.dt 的行

我尽量减少桌子

那么,如何通过日期时间过滤此表?并将其转换为 System.Linq.Table?

谢谢!

【问题讨论】:

    标签: c# sql linq-to-sql datatable filtering


    【解决方案1】:

    将 Table 转换为 IQueryable 有什么问题?

    你可以这样做:

    DateTime filterDate=new DateTime(2014,5,1,0,0,0);
    var query = ((IQueryable<SomeTable>)dc.GetTable<SomeTable>()).Where(item => item.Date < filterDate);
    var filteredItems = query.ToList();
    

    请注意,在此示例中,数据将在 DB 端进行过滤,并非所有 100 000+ 行都会从 DB 中获取。

    【讨论】:

      猜你喜欢
      • 2011-06-22
      • 2021-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-26
      • 2021-08-09
      • 2021-04-16
      • 1970-01-01
      相关资源
      最近更新 更多