我可以从Linq To SQL过滤表吗?

时间:2014-08-07 19:16:08

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

美好的一天!

我通过LinqToSql加载了一些大表。 我可以下载这张桌子的一部分吗?例如,加载表row.dt< = some_date_time?

我这样做:

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

但仍然非常大 - 10万多行。

我可以这样做:

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

我不能那样做,因为我把它投到了IQueryable。 此结果表仅包含item.dt&lt; = filterDate?

的行

我试图减少表格,因为我可以

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

谢谢!

1 个答案:

答案 0 :(得分: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();

请注意,在此示例中,数据将在数据库端进行过滤,并且不会从数据库中提取所有100 000多行。