我一直在使用F#,并且非常喜欢它。
我想使用类型提供程序进行数据访问,但是希望能够进行实体框架迁移。
我可以在没有实体框架的情况下使用EF迁移吗?我很乐意手工编写迁移代码,希望在F#中编写。
答案 0 :(得分:1)
您可以在应用中使用EF而无需使用EF。创建一个单独的项目use Code First migrations。
我不知道迁移脚手架功能支持F#。要么使用C#进行迁移,要么自己翻译代码?
答案 1 :(得分:1)
F#类型的提供程序意味着已经有外部数据源,即,它们本质上是“ Db First”。仅使用EF Code First来自动生成迁移不是最好的主意,我建议使用普通的SQL和一些跟踪迁移的工具,例如dbup。 我answered it在类似但又更大的问题中进行了详细说明。
答案 2 :(得分:0)
如果要使用EFCore,可以使用MigrationsAssembly仅隔离C#项目中的迁移。
例如在DbContext
模块中:
let setupOptions (optionsBuilder: DbContextOptionsBuilder) =
optionsBuilder.UseNpgsql(
"Host=localhost;Database=mydb;Username=postgres;Password=postgres",
fun opt -> opt.MigrationsAssembly "MyProject.Data.Migrations" |> ignore)
|> ignore
服务配置:
services.AddDbContext<DbContext.MyDbName>(DbContext.setupOptions)
CLI:
dotnet ef migrations add CreateFoo -p ./MyProject.Data.Migrations -s ./MyProject.Api -v
dotnet ef database update -p ./MyProject.Data.Migrations -s ./MyProject.Api -v
还有一个正在进行的项目正在支持F#设计时: https://github.com/bricelam/EFCore.FSharp