首页 > 解决方案 > 具有多个构造函数和属性的 F# DbContext 继承

问题描述

我正在学习在 F# 项目中使用 Ef Core 的方法。我继承了 DbContext,我只是想要一个感觉检查。这是 F# 方式的有用方法吗?使用这种继承方法,并且必须显式设置connectionString属性?一个显式的主构造函数会更符合这个习惯吗?

type TestDbContext =
     inherit DbContext

     new (conn:string) = {inherit DbContext(); connectionString = Some conn}
     new (opts:DbContextOptions<TestDbContext>) = {inherit DbContext(opts); connectionString = None}
     val connectionString:Option<string>
     member x.ConnectionString
      with get() = match x.connectionString with
                 | Some con -> con
                 | None -> ""

    override __.OnConfiguring (options) = 
       if not(options.IsConfigured) then
         options.UseSqlServer(__.ConnectionString) |>ignore
    override __.OnModelCreating modelBuilder = modelBuilder.ApplyConfiguration(TemplateDbBuilder()) |> ignore

标签: functional-programmingf#entity-framework-core

解决方案


推荐阅读