F#类型提供程序是否为实现对象关系映射提供了良好的基础?

时间:2011-07-09 08:26:45

标签: orm f# type-providers

从我到目前为止读到的有关类型提供程序的信息来看,我想知道它们是否可以用于为F#实现一个好的ORM。

我认为数据库行可以由具有正确类型属性的对象表示,允许对列值进行类型安全的读写访问,类型提供程序实现在编译时自动检查当前数据库模式。

这是一个现实有用的场景吗?

2 个答案:

答案 0 :(得分:1)

如果我是正确的,那么Type提供程序将是F#编译器的“插件”。他们将在编译代码时插入F#编译器无法找到的类型信息。所以基本上在编译F#代码时,编译器会要求类型提供者填写F#编译器不知道的类型信息。这也意味着它仍然是静态类型,即在编译时识别类型。

如果上述理解是正确的,那么在ORM的情况下,您将需要为您的关系方案实现类型提供程序,并且F#编译器将使用此类型提供程序来编译您的代码以“填充”表示ORM映射的类型。

如果你看一下ORM,它们不仅仅是将关系数据映射到对象,还提供各种操作,如查询,更新等基础关系数据。在我看来,我不认为此时F#类型提供商对ORM有好处,但我可能错了:)

答案 1 :(得分:1)

是的,这是类型提供者的有趣用法。其中一个示例就是这样,请参阅http://msdn.microsoft.com/en-us/library/hh361033(v=vs.110).aspx