具有 EF 代码优先/持续集成问题的 F# 类型提供程序
F# type providers with EF Code First / Continuous Integration Issues
我们有一个基于 C# EF Code First 的大型代码库。最近添加了一个 F# 项目。该项目使用 FSharp.Data.SqlClient (http://fsprojects.github.io/FSharp.Data.SqlClient/) 类型的提供程序连接到数据库。
这造成了一个巨大的问题:F# 类型提供程序需要 DB(和所有引用的结构)存在 之前 整个项目可以 complied,但 EF 需要 编译 整个项目才能 创建/更新 数据库。随后,无法再从头创建甚至修改数据库。
虽然 不使用 类型提供者显然是可能的,但这不是一个有吸引力的解决方案,因为它使类型提供者的全部目的无效,并且需要编写他们已经完成的代码.
有人知道如何处理吗?非常感谢!
扩展我的评论,假设您目前只有 2 个 VS 项目:
- 您的 C# 项目包含包括 EF 代码在内的所有内容
- 您的 F# 项目包含使用类型提供程序的代码
你可以做的是变成一个 3 项目解决方案:
- 一个新的小型 C# 项目,只做 EF 的事情(迁移、模式定义、类 声明)
- 您的 F# 项目包含使用类型提供程序的代码
- 您现有的 C# 项目不包含 ef 类 和 ef 相关的东西,但它引用了 #1 和 #2。
这样,您的 EF C# 项目可以先然后运行编译迁移。然后您的 F# 项目将编译正常。最后,您的第三个项目(包含依赖于 EF 和 F# 项目的其余逻辑)可以成功编译。
我们有一个基于 C# EF Code First 的大型代码库。最近添加了一个 F# 项目。该项目使用 FSharp.Data.SqlClient (http://fsprojects.github.io/FSharp.Data.SqlClient/) 类型的提供程序连接到数据库。
这造成了一个巨大的问题:F# 类型提供程序需要 DB(和所有引用的结构)存在 之前 整个项目可以 complied,但 EF 需要 编译 整个项目才能 创建/更新 数据库。随后,无法再从头创建甚至修改数据库。
虽然 不使用 类型提供者显然是可能的,但这不是一个有吸引力的解决方案,因为它使类型提供者的全部目的无效,并且需要编写他们已经完成的代码.
有人知道如何处理吗?非常感谢!
扩展我的评论,假设您目前只有 2 个 VS 项目:
- 您的 C# 项目包含包括 EF 代码在内的所有内容
- 您的 F# 项目包含使用类型提供程序的代码
你可以做的是变成一个 3 项目解决方案:
- 一个新的小型 C# 项目,只做 EF 的事情(迁移、模式定义、类 声明)
- 您的 F# 项目包含使用类型提供程序的代码
- 您现有的 C# 项目不包含 ef 类 和 ef 相关的东西,但它引用了 #1 和 #2。
这样,您的 EF C# 项目可以先然后运行编译迁移。然后您的 F# 项目将编译正常。最后,您的第三个项目(包含依赖于 EF 和 F# 项目的其余逻辑)可以成功编译。