F# - 选择哪种ORM?

时间:2011-03-10 20:13:44

标签: orm f#

我刚开始玩F#,并想知道是否有任何推荐的 ORM在那里,对于F#。

在C#中我使用了NHibernate,这在F#中实现起来相当困难和难看。我也考虑过使用普通的System.Data.SqlClient,但那就像回到石器时代......

有什么建议吗?

4 个答案:

答案 0 :(得分:7)

在处理fssnip.net时,我一直在使用F#支持LINQ to SQL。当你需要加载,编辑,插入实体时它很好,它可以编写简单的查询。它有一些很好的方面,例如您可以使用拼接来组成查询的一部分。

但是,当前实现的F#到LINQ转换器不能处理复杂的查询(嵌套函数调用,高级分组和连接),所以我写了一些存储过程。这些可以通过生成的LINQ对象很好地调用,但是你必须编写一些SQL。

或者,如果您想使用旧式SqlClient,则可以使用动态(?)运算符使其更好。我在this blog post写了这篇文章。对于简单的场景,这可能是非常好的技术,因为它非常简单。

答案 1 :(得分:5)

这可能是缺少的(如果这只是为了教育或有趣),但如果您已经知道如何在C#中使用ORM,为什么不在C#中将其作为一个库,然后完成其余的工作F#中的逻辑? .NET语言的主要卖点之一是互操作性。

答案 2 :(得分:1)

我一直在通过F#PowerPack使用LINQ to SQL。我正在使用手动映射(即手动创建我的datacontext,创建我的POCO类以及编写XML文件来定义我的数据库布局)。到目前为止,它似乎在F#中运行良好。

答案 3 :(得分:0)

使用{#3}}和FSharp.Data.SqlClient使用F#与数据库进行交互的两个选项。