Recordset.Net is a library to convert .NET POCOs to ADODB.Recordsets.
For version 1.0, it will only support converting from lists of POCOs to read-only Recordsets, not vice-versa.
(converting to Recordsets is the only thing I need at the moment)
You can either download Recordset.Net from the download page on GitHub (link above) or install with NuGet:
Please note that in order to use Recordset.Net, you need to add a COM reference to Microsoft ActiveX Data Objects 2.8 Library
to your project.
(you need to add the reference yourself even if you use NuGet to install - apparently it's not possible to add COM references with NuGet, so I couldn't do it in the package)
Recordset.Net provides a single extension method to IEnumerable<T>
, which is named .ToRecordset()
.
This will convert any IEnumerable<T>
into an ADODB.Recordset
, but only if T
is a custom class with user defined properties.
If you try to use .ToRecordset()
on something like an IEnumerable<string>
or IEnumerable<int>
, then Recordset.Net will throw an ArgumentException
.
Each property of the POCO will be converted into a field in the Recordset, but only if its type is supported by ADO. POCO properties with types unsupported by ADO will be omitted. You can see a list of the supported CLR types and their ADO counterparts in the code.
Given this POCO:
class SomePoco
{
public int NumericValue { get; set; }
public string StringValue { get; set; }
}
Convert it to a Recordset:
var list = new List<SomePoco>();
list.Add(new SomePoco { NumericValue = 1, StringValue = "foo" });
var rs = list.ToRecordset();
Get values from the Recordset after the conversion:
var value = rs.Fields["StringValue"].Value;
For more examples, you can take a look at the tests.
Just run build.bat
in the main folder. This will create a new folder named release
with the compiled assembly.
To run the unit tests as well, run build-and-run-tests.bat
(also in the main folder). The release
folder will not be created if the tests fail.
You can also run build-release.bat
to do all of the above and create a NuGet package and a zip file (in the release
folder) as well.
Recordset.Net makes use of the following open source projects:
Recordset.Net is licensed under the MIT License. See License.txt for details.