如何在Rhino ETL DSL中使用FluentFile?

时间:2009-07-14 23:11:46

标签: .net boo rhino-etl

我一直在玩Rhino ETL库,并且非常喜欢它的方向。但是我发现关于它的不好的部分是文档稀疏,似乎没有足够的关于如何创建这些管道进程的信息,特别是使用DSL。

我只是想创建一个DSL文件来加载文件并将数据导出到另一个文件中以查看这些文件如何组合在一起。到目前为止我的是这个。

[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()

抛出此异常

File.boo(1,2):BCE0064:Boo.Lang.Compiler.CompilerError:找不到名称为“DelimitedRecord”或“DelimitedRecordAttribute”的属性(属性名称不区分大小写)。你是说'System.Diagnostics.DelimitedListTraceListener'吗?

如果删除属性部分,我会收到此错误

异常:无法创建管道ImportFile:类User必须使用[DelimitedRecord]或[FixedLengthRecord]属性进行标记。 例外:执行操作失败File.import_file:必须使用[DelimitedRecord]或[FixedLengthRecord]属性标记用户类。

这里有什么想法吗?或者有没有关于如何在DSL中使用FluentFile进行Rhino ETL的示例?

1 个答案:

答案 0 :(得分:1)

DelimitedRecordAttribute位于FileHelpers程序集FileHelpers名称空间中。