0

使用 Oracle® Data Provider for .NET 生成强类型数据集。

我当然可以填满整个表格,但我想学习如何将 Where() 扩展与委托函数一起使用,该委托函数应根据某些表值限制收集的行数。

Where() 扩展的参数:

(this IEnumerable<CUSTOMERRow> source, Func<CUSTOMERRow, bool> predicate)

应使用委托的代码片段:

StronglyTypedDataSet myDataSet = new StronglyTypedDataSet();

CUSTOMERTableAdapter tableAdapter = new CUSTOMERTableAdapter();
tableAdapter.Fill(myDataSet.CUSTOMER.Where(newfunctionhere));
4

2 回答 2

1

在 C# 中,lambda 表达式通常用作函数。IE:

tableAdapter.Fill(myDataSet.CUSTOMER.Where(c => c.LastName == "Smith"));
于 2009-12-16T17:25:05.553 回答
1

Where方法可用于过滤集合的内容。但是在您的情况下,您使用表适配器来填充空DataTable,并且在空集合上调用 Where 只会产生一个空序列...并且表适配器不知道如何解释Where调用,它只是使用其 SelectCommand填满表格。所以你不能使用 Linq 来定义你想在表中加载哪些数据。但是一旦你的表格被填满,你就可以使用它Where来过滤结果,就像这样:

var rows = myDataSet.CUSTOMER.AsEnumerable().Where(cr => cr.SomeProperty == someValue);
于 2009-12-16T17:25:06.723 回答