在 F# 中管理 SQL 架构
Managing SQL schema in F#
由于在 F# 中存在用于访问 SQL 数据的 type providers,因此没有太多关注 ORM、微型或其他方式的使用。我绝对能看出这背后的逻辑。
似乎许多使用 F# 处理关系数据的示例都是将它们插入现有的大型数据库,这似乎是在其他地方创建的。
感觉这里有点差距:是否有直接从 F# 管理模式创建和迁移的好方法?上面链接的示例建议 运行 您的手动模式创建脚本是第一步。这是唯一的选择吗?
我最近开始了一个从一开始就是 F# 的小项目,我正在考虑将一些数据存储在关系数据库(目前是 sqlite)中。我没有可供探索的现有架构,我正在从头开始设计。在 F# 中是否有更友好或更惯用的方式来管理我的架构(创建然后迁移)?
您/可以/将 Entity Framework 与 F# 一起使用,并因此获得它附带的迁移 API,但我发现在实践中它非常痛苦 - 所有实体 类 将需要 member val get set
样式属性(我相信)和其他各种点点滴滴。几个月前,Jamie Dixon 就此写了一篇博客 post,当时我正在试验它——我并不喜欢它!
老实说,虽然这不是一个很好的答案,因为考虑到您的要求,即 F# 中的数据库模式管理 - 我建议您使用 VS 数据库项目之类的东西来管理您的模式您的代码,并使用(是)SQL 类型提供程序之一来管理您的应用程序中的数据。
如果您执意要使用 "schema migration in code" 系统,根据我的经验,EF 在 C# 中的表现要好得多,因此您可以在理论上进行实验,例如F# 应用程序代码引用的 C#/EF 数据访问项目。
对不起。
我一直在尝试为此寻找解决方案,而且在涉及 SQL 数据库时,我越来越倾向于尝试回归基础。本书 Refactoring Databases 中描述的主要部分之一是迁移。拥有一个支持迁移的工具可以解决很多问题,只要您可以接受用普通的 ol' SQL 编写所有上下脚本可能是非常合适的。
我为 .NET 堆栈找到的一个工具是 Rob Reynold 的
Roundhouse。我还没有尝试过,但它看起来很有希望,尽管有点过时了。
由于在 F# 中存在用于访问 SQL 数据的 type providers,因此没有太多关注 ORM、微型或其他方式的使用。我绝对能看出这背后的逻辑。
似乎许多使用 F# 处理关系数据的示例都是将它们插入现有的大型数据库,这似乎是在其他地方创建的。
感觉这里有点差距:是否有直接从 F# 管理模式创建和迁移的好方法?上面链接的示例建议 运行 您的手动模式创建脚本是第一步。这是唯一的选择吗?
我最近开始了一个从一开始就是 F# 的小项目,我正在考虑将一些数据存储在关系数据库(目前是 sqlite)中。我没有可供探索的现有架构,我正在从头开始设计。在 F# 中是否有更友好或更惯用的方式来管理我的架构(创建然后迁移)?
您/可以/将 Entity Framework 与 F# 一起使用,并因此获得它附带的迁移 API,但我发现在实践中它非常痛苦 - 所有实体 类 将需要 member val get set
样式属性(我相信)和其他各种点点滴滴。几个月前,Jamie Dixon 就此写了一篇博客 post,当时我正在试验它——我并不喜欢它!
老实说,虽然这不是一个很好的答案,因为考虑到您的要求,即 F# 中的数据库模式管理 - 我建议您使用 VS 数据库项目之类的东西来管理您的模式您的代码,并使用(是)SQL 类型提供程序之一来管理您的应用程序中的数据。
如果您执意要使用 "schema migration in code" 系统,根据我的经验,EF 在 C# 中的表现要好得多,因此您可以在理论上进行实验,例如F# 应用程序代码引用的 C#/EF 数据访问项目。
对不起。
我一直在尝试为此寻找解决方案,而且在涉及 SQL 数据库时,我越来越倾向于尝试回归基础。本书 Refactoring Databases 中描述的主要部分之一是迁移。拥有一个支持迁移的工具可以解决很多问题,只要您可以接受用普通的 ol' SQL 编写所有上下脚本可能是非常合适的。
我为 .NET 堆栈找到的一个工具是 Rob Reynold 的 Roundhouse。我还没有尝试过,但它看起来很有希望,尽管有点过时了。