Sylvan.Data
0.2.2
Prefix Reserved
See the version list below for details.
dotnet add package Sylvan.Data --version 0.2.2
NuGet\Install-Package Sylvan.Data -Version 0.2.2
<PackageReference Include="Sylvan.Data" Version="0.2.2" />
paket add Sylvan.Data --version 0.2.2
#r "nuget: Sylvan.Data, 0.2.2"
// Install Sylvan.Data as a Cake Addin #addin nuget:?package=Sylvan.Data&version=0.2.2 // Install Sylvan.Data as a Cake Tool #tool nuget:?package=Sylvan.Data&version=0.2.2
Sylvan.Data
A .NET library for working with data. Provides implementations of, and extensions for, DbDataReader
.
All of the data operations are designed to support streaming, so large data sets don't need to fit in memory.
DataBinder
Contains a general purpose data binder that can bind DbDataReader
records to object instances.
The following example binds CSV data using Sylvan.Data.Csv library to strongly-typed C# Record
instances.
using Sylvan.Data;
using Sylvan.Data.Csv;
using System.Linq;
using var dr = CsvDataReader.Create("data.csv");
IEnumerable<Record> records = dr.GetRecords<Record>();
Record[] allRecords = records.ToArray();
class Record {
public int Id { get; set; }
public string Name { get; set; }
public DateTime Date { get; set; }
public decimal Amount { get; set; }
}
Object data reader
The IEnumerable<T>.AsDataReader
extension method provides the inverse of the databinder,
exposing object instances as a DbDataReader
.
This example demonstrates using the Sylvan.Data.Csv library to write object data.
IEnumerable<Record> records = GetRecords();
DbDataReader reader = records.AsDataReader();
CsvDataWriter csvWriter = CsvDataWriter.Create("records.csv");
csvWriter.Write(reader);
Extension methods
The library includes various LINQ-like extension methods for DbDataReader
.
Select
Creates a DbDataReader that exposes a subset of the columns.
Where
Creates a DbDataReader that filters rows.
Skip/Take
Creates a DbDataReader that skips rows, or limits the rows read.
WithColumns
Creates a DbDataReader with additional columns attached.
This example shows how to use some of these methods in a CSV data loading operation.
using Sylvan.Data;
string csvFile = "data.csv";
var importDate = DateTime.UtcNow;
var csv = CsvDataReader.Create(csvFile);
DbDataReader dr =
csv
// select some of the columns from the csv file
.Select("Id", "Name", "Date", "Value")
// filter to just records from the last week
.Where(d => d.GetDateTime(2) >= importDate.AddDays(-7))
// add columns with information about the data source
.WithColumns(
new CustomDataColumn<string>("SourceFile", r => csvFile),
new CustomDataColumn<DateTime>("ImportDate", r => importDate),
new CustomDataColumn<int>("RowNum", r => csv.RowNumber)
)
// limit to 10k records
.Take(10000);
LoadData(dr);
Schema
The Schema
type provides methods to building and de/serializing data schema information.
This can be used to attach schema information to weakly typed data files, like CSV and Excel data,
using the Sylvan.Data.Csv and Sylvan.Data.Excel package.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
-
.NETStandard 2.1
- No dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Sylvan.Data:
Package | Downloads |
---|---|
Sylvan.AspNetCore.Mvc.Csv
Package Description |
|
Sylvan.AspNetCore.Mvc.Excel
Package Description |
GitHub repositories (2)
Showing the top 2 popular GitHub repositories that depend on Sylvan.Data:
Repository | Stars |
---|---|
LykosAI/StabilityMatrix
Multi-Platform Package Manager for Stable Diffusion
|
|
MarkPflug/Sylvan.Data.Excel
The fastest .NET library for reading Excel data files.
|
Version | Downloads | Last updated |
---|---|---|
0.2.16 | 42,091 | 7/2/2024 |
0.2.15 | 3,852 | 6/20/2024 |
0.2.14 | 685 | 6/13/2024 |
0.2.13 | 42,196 | 2/6/2024 |
0.2.13-b0001 | 6,936 | 11/17/2023 |
0.2.12 | 90,123 | 4/25/2023 |
0.2.12-B0002 | 146 | 4/20/2023 |
0.2.12-B0001 | 155 | 4/7/2023 |
0.2.11 | 28,398 | 2/17/2023 |
0.2.10 | 4,339 | 1/16/2023 |
0.2.9 | 17,814 | 12/29/2022 |
0.2.8 | 21,459 | 11/8/2022 |
0.2.7 | 10,696 | 10/11/2022 |
0.2.6 | 3,032 | 9/23/2022 |
0.2.5 | 1,688 | 9/12/2022 |
0.2.4 | 481 | 9/8/2022 |
0.2.3 | 5,810 | 7/29/2022 |
0.2.2 | 116,813 | 6/14/2022 |
0.2.1 | 1,664 | 5/31/2022 |
0.2.0 | 102,553 | 3/12/2022 |
0.2.0-b0001 | 196 | 2/16/2022 |
0.1.3 | 9,863 | 1/13/2022 |
0.1.2 | 550 | 1/10/2022 |
0.1.1 | 376 | 1/4/2022 |
0.1.0 | 3,213 | 10/30/2021 |