【问题标题】:Chaining type providers链接类型提供程序
【发布时间】:2017-01-11 05:18:29
【问题描述】:

我想知道是否可以根据 SqlDataProvider 提供的数据创建 XmlProvider。

天真地应该是这样的:

type sql = SqlDataProvider<...>

let xml =
    query {
      for item in sql.GetDataContext().Main.Items do
      select item.XmlData
      head
    }

type xmlType = XmlProvider<xml>

当然这会失败,因为 xml 不是文字。

我很好奇这是否可能。

【问题讨论】:

    标签: f# type-providers


    【解决方案1】:

    简短的回答是:是的。

    然后是如果和但是:

    鉴于返回的 xml 是结构化的(例如:每次大约相等),那么提供一个文字示例就可以了。

    那么数据库中的数据可以这样解析:

    let someXmlDataNowType = xmlType.Parse(xml)
    

    这可能不是您想要或询问的,但简短的回答是:不;-)

    如果您有很多使用不同 XML 的查询,我的做法是编写一些代码以在某些文件中生成不同的 XML,甚至可能自动编写 f#...

    【讨论】:

    • 是和否?你是精灵吗?我可以提前从其中一个数据库条目中提取 XML 样本,这样我就可以从文件中创建 XML 提供程序,但考虑到它无论如何都在数据库中,我认为可能无法将两者结合在一起
    猜你喜欢
    • 2013-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多