Sylvan.Data
0.2.7
Prefix Reserved
See the version list below for details.
dotnet add package Sylvan.Data --version 0.2.7
NuGet\Install-Package Sylvan.Data -Version 0.2.7
<PackageReference Include="Sylvan.Data" Version="0.2.7" />
paket add Sylvan.Data --version 0.2.7
#r "nuget: Sylvan.Data, 0.2.7"
// Install Sylvan.Data as a Cake Addin #addin nuget:?package=Sylvan.Data&version=0.2.7 // Install Sylvan.Data as a Cake Tool #tool nuget:?package=Sylvan.Data&version=0.2.7
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 is compatible. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.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.
-
net6.0
- No dependencies.
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Sylvan.Data:
Package | Downloads |
---|---|
GreatUtilities.Infrastructure
Essencial tools to agile development. |
|
Sylvan.AspNetCore.Mvc.Csv
Package Description |
|
Sylvan.AspNetCore.Mvc.Excel
Package Description |
GitHub repositories (3)
Showing the top 3 popular GitHub repositories that depend on Sylvan.Data:
Repository | Stars |
---|---|
LykosAI/StabilityMatrix
Multi-Platform Package Manager for Stable Diffusion
|
|
nietras/Sep
World's Fastest .NET CSV Parser. Modern, minimal, fast, zero allocation, reading and writing of separated values (`csv`, `tsv` etc.). Cross-platform, trimmable and AOT/NativeAOT compatible.
|
|
MarkPflug/Sylvan.Data.Excel
The fastest .NET library for reading Excel data files.
|
Version | Downloads | Last updated |
---|---|---|
0.2.16 | 89,562 | 7/2/2024 |
0.2.15 | 4,429 | 6/20/2024 |
0.2.14 | 727 | 6/13/2024 |
0.2.13 | 44,702 | 2/6/2024 |
0.2.13-b0001 | 7,021 | 11/17/2023 |
0.2.12 | 99,258 | 4/25/2023 |
0.2.12-B0002 | 152 | 4/20/2023 |
0.2.12-B0001 | 161 | 4/7/2023 |
0.2.11 | 35,403 | 2/17/2023 |
0.2.10 | 4,350 | 1/16/2023 |
0.2.9 | 21,023 | 12/29/2022 |
0.2.8 | 23,983 | 11/8/2022 |
0.2.7 | 11,614 | 10/11/2022 |
0.2.6 | 3,118 | 9/23/2022 |
0.2.5 | 1,702 | 9/12/2022 |
0.2.4 | 493 | 9/8/2022 |
0.2.3 | 5,907 | 7/29/2022 |
0.2.2 | 140,970 | 6/14/2022 |
0.2.1 | 1,676 | 5/31/2022 |
0.2.0 | 107,340 | 3/12/2022 |
0.2.0-b0001 | 204 | 2/16/2022 |
0.1.3 | 9,881 | 1/13/2022 |
0.1.2 | 562 | 1/10/2022 |
0.1.1 | 388 | 1/4/2022 |
0.1.0 | 3,278 | 10/30/2021 |