我需要在MySql数据库中存储大而复杂的数据结构(我使用F#)。现在我有两个想法:
仅使用结构(限制),然后创建nativeptr< _>到struct,转换为nativeptr并将all加载到一个字节[],这是一个MySql blob。
使用F#Reflection库将所有内容转换为JSON并从中转换为字符串(slooow)。
我错过了更好的方法吗?这两种方式哪种方式更好?
谢谢!
答案 0 :(得分:1)
我认为将F#数据结构存储为二进制blob或文本数据并不是一个好主意 - 如果您使用的是关系数据库,则应将数据存储到具有(合理)列的表中。
最直接的方法是使用ADO.NET(MySQL有some providers that allow that)。从F#调用ADO.NET的代码与从C#调用它的代码基本相同。例如,请参阅使用MySqlConnection
的{{3}}(PDF)。
通过在F#中使用?
(动态)运算符,您可以更好地读取数据。我写了一个code in this tutorial,但它也适用于MySQL。
最后,似乎MySQL还有实体框架(example demonstrating this in MS SQL)的提供者,因此您可以使用F#LINQ支持(但是当前版本对EF查询的支持有限,所以它可以工作只有在简单的场景中。)