Creates LINQ queries over CSV records: the records of a file, a stream, text or bytes as CsvRecordAttribute types, or as CsvDynamicRecord rows for files without a record type.
A query reads its source each time it runs, and pushes what it can into the reader: it reads only the members of the records that the query uses (with record types whose assembly references CsvHelper.Linq, which makes the source generator write the projections it needs), skips rows without parsing them, and filters records before it reads the members that only the rest of the query uses. Any LINQ operator can be used; LINQ to Objects runs those that the reader does not. Queries of other LINQ providers in a CSV query, such as tables of Entity Framework Core, run on their provider, and joins with them ask only for the rows with the keys of the CSV records.
The query provider compiles lambdas and uses reflection, so it is not supported with native AOT or trimming.
Tells how a CSV query runs without running it: which members of the records it reads, which operators the CSV reader runs, and what it asks other providers for.
Queries the remaining rows of a reader as dynamic records, from where it is. The query can run once; one that uses it in more than one place reads its rows once, into memory.
Queries the remaining records of a reader, from where it is. The query can run once, and leaves the reader open; its options are the reader's (CsvQueryOptions.ReaderOptions is not used). A query that uses it in more than one place, such as both sides of a self-join, reads its records once, into memory.
Changes the dynamic rows of a file that match a condition: update changes the values of each, by column name, and only the fields whose values changed are written again; the rest of the file is kept byte for byte. The file is rewritten next to itself and replaced when the new one is complete, so a failure leaves it as it was.