I\'m migrating our DAL class library to .NET 4 (from .NET 3.5). We\'re using typed datasets quite often, and we often iterate over tables:
foreach(var row in
The accepted answer is mostly complete, but will not fully resolve the issue.
Here's a reproduction of my question and answer on this issue.
In short, the problem occurs when the MSDataSetGenerator
tool runs, but the System.Data.DataSetExtensions
assembly has not yet been loaded into the current Visual Studio process.
One way to load the assembly is just to open any XSD file and THEN re-generate the designer code.
The following steps should generate the appropriate designer file:
Run Custom Tool
Here's a full step by step walkthrough of the issue and solution with pictures
This problem has also been reported to Microsoft in the following bug tickets:
Just ran into this today and was able to correct it by doing the following:
Select the xsd files in the solution explorer and click "Run Custom Tool". The designer files will be regenerated using TypedTableBase instead of DataTable and IEnumerable.
All this is correct but in my case I had to support source code which needs to run with .Net 2.0 and .Net 4.0. My objective was to change as little code as possible.
My solution was to create a partial extension under .Net 4.0 and bind it to the 4.0 application. This looks like:
namespace NamespaceOfMyDataSet
{
public partial class MyDataSet : global::System.Data.DataSet
{
public partial class MyTypedTable : global::System.Data.TypedTableBase<MyTypedTableRow>
{
public System.Data.DataRowCollection GetRows()
{
return this.Rows;
}
}
}
}
This works like a charme!!!