F#数据访问和EF迁移

时间:2014-04-15 05:12:40

标签: entity-framework f# ef-migrations

我一直在使用F#,并且非常喜欢它。

我想使用类型提供程序进行数据访问,但是希望能够进行实体框架迁移。

我可以在没有实体框架的情况下使用EF迁移吗?我很乐意手工编写迁移代码,希望在F#中编写。

3 个答案:

答案 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