F # DbContext Наследование с несколькими конструкторами и свойством - PullRequest
1 голос
/ 20 марта 2020

Я учусь тому, как использовать Ef Core в проекте F #. Я наследую DbContext и просто хочу проверить смысл. Это полезный подход в стиле F #? Использование этого метода наследования и необходимость явной установки свойства connectionString? Будет ли экспликт первичного конструктора более идиоматическим c для этого?

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
...