如何在F#类型提供程序中正确使用类型?

时间:2017-04-04 20:59:28

标签: f# type-providers

我正在为Google BigQuery提供类型提供程序,这将是我的第一个类型提供程序。我几乎把所有的拼图都放在一起,但我仍然坚持最后一个错误:

  

找到了程序集“BigQueryProvider”中类型“BigQueryProvider.SchemaHandling.Field.Value”的引用,但在该程序集中找不到该类型

为什么会出现此错误?我很难理解该做什么,因为该类型实际上在程序集BigQueryProvider中,并且我在我的测试脚本中加载该程序集。

我的计划不起作用,如下:

  1. 鉴于查询获取该查询的元数据
  2. 为元数据生成架构
  3. 为架构创建方法返回类型
  4. 创建执行方法,并映射到架构后面的返回类型。
  5. 首先,我尝试将模式传递给生成execute方法的方法,但这也不起作用。所以现在我在创建输出类型时以及在运行时执行execute方法时生成模式两次。这就是问题的出发点。

    由于这是我的第一个类型提供者,我可能构造了一些错误的东西,还有很多我不理解的东西,但你必须从某个地方开始。

    代码在这里:https://github.com/mastoj/BigQueryProvider/tree/WIP

    我有一个使用提供程序的简单示例脚本:https://github.com/mastoj/BigQueryProvider/blob/WIP/tests/BigQueryProvider.Tests/QuickTests.fsx

    要运行任何此类操作,您需要安装google sdk,尤其是“bq”(bigquery)命令行工具,因为我现在正在使用它来获取查询的元数据。

0 个答案:

没有答案