Come posso utilizzare FluentFile in Rhino ETL DSL?
Domanda
Ho giocato in giro con la libreria ETL Rhino e piace molto la direzione che sta andando. Tuttavia ho trovato che la parte male su di esso è la documentazione è scarsa e non sembra essere abbastanza buone informazioni su come creare questi processi di pipeline e soprattutto utilizzando il DSL.
Sono solo cercando di creare un file DSL per caricare un file ed esportare i dati in un altro file per vedere come tutto questo potrebbe andare bene insieme. Quello che ho finora è questa.
[DelimitedRecord("\t")]
class User:
public Name as string
public Phone as string
public Email as string
operation import_file:
file = Rhino.Etl.Core.Files.FluentFile(typeof(User)).From("""E:\Fake\Book1.txt""")
for row in file:
yield Row.FromObject(row)
operation export_file:
file = Rhino.Etl.Core.Files.FluentFile(typeof(User)).To("""E:\Fake\Test.txt""")
for row in rows:
record = User(Name: row["Name"])
file.Write(record)
process ImportFile:
import_file()
export_file()
Si genera questa eccezione
File.boo (1,2): BCE0064: Boo.Lang.Compiler.CompilerError: è stato trovato alcun attributo con il nome di 'DelimitedRecord' o 'DelimitedRecordAttribute' (nomi degli attributi sono case insensitive). Forse cercavi 'System.Diagnostics.DelimitedListTraceListener'?
Se rimuovo la parte dell'attributo ottengo questo errore
Eccezione: Impossibile creare gasdotto ImportFile: L'Utente classe deve essere contrassegnato con il o attributo [DelimitedRecord] [FixedLengthRecord]. Eccezione: Impossibile eseguire un'operazione File.import_file: L'Utente classe deve essere contrassegnato con il [DelimitedRecord] o [FixedLengthRecord] attributo
.Tutte le idee qui? Oppure ci sono esempi di come utilizzare il FluentFile all'interno di un DSL per Rhino ETL?
Soluzione
Il DelimitedRecordAttribute è in FileHelpers assemblaggio, FileHelpers namespace.