我需要在 MySql 数据库中存储大型复杂的数据结构(我使用 F#)。现在我有两个想法:
仅使用结构(限制),然后为该结构创建一个 nativeptr<_>,转换为 nativeptr 并将所有内容加载到字节 [] 中,这是一个 MySql blob。
使用 F# 反射库将所有内容与 JSON 相互转换并存储为字符串 (slooow)。
有没有我错过的更好的方法?这两种方式哪种更好?
谢谢!
最佳答案
我认为将 F# 数据结构存储为二进制 blob 或文本数据不是一个好主意 - 如果您使用的是关系数据库,您应该将数据存储到具有(合理的)列的表中。
最直接的方法是使用 ADO.NET(MySQL 有 some providers that allow that)。从 F# 调用 ADO.NET 的代码与从 C# 调用它的代码基本相同。参见示例 code in this tutorial (PDF) 使用 MySqlConnection
。
通过在 F# 中使用 ?
(动态)运算符,您可以更好地读取数据。我写了一个example demonstrating this in MS SQL , 但它也可以适用于 MySQL。
最后,MySQL 似乎也有 Entity Framework 的提供程序 ( see here ),因此您可以使用 F# LINQ 支持(但当前版本对 EF 查询的支持有些有限,因此它只能很好地工作在简单的场景中)。
关于.net - 使用 F# 在 MySql 数据库中存储数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4887006/