When utilizing Npgsql's JSONB to POCO mapping, Migrations/*Snapshot.fs gets emitted with an empty, malformed open statement:
open System
open System.Text.Json
open
open Microsoft.EntityFrameworkCore
open Microsoft.EntityFrameworkCore.Infrastructure
open Microsoft.EntityFrameworkCore.Metadata
open Microsoft.EntityFrameworkCore.Migrations
open Microsoft.EntityFrameworkCore.Storage.ValueConversion
open Npgsql.EntityFrameworkCore.PostgreSQL.Metadata
public class SomeEntity
{
public int Id { get; set; }
[Column(TypeName = "jsonb")]
public Customer Customer { get; set; }
}
public class Customer // Mapped to a JSON column in the table
{
public string Name { get; set; }
public int Age { get; set; }
public Order[] Orders { get; set; }
}
That is, with Npgsql, using [Column(TypeName = "jsonb")] enables an arbitrary type (e.g., Customer) to be included as part of an entity (e.g., SomeEntity), without the need to register the former as an entity using DbSet. I can imagine this being a tricky corner case for the migration builder.
Expected behavior
open System
open System.Text.Json
open Microsoft.EntityFrameworkCore
open Microsoft.EntityFrameworkCore.Infrastructure
open Microsoft.EntityFrameworkCore.Metadata
open Microsoft.EntityFrameworkCore.Migrations
open Microsoft.EntityFrameworkCore.Storage.ValueConversion
open Npgsql.EntityFrameworkCore.PostgreSQL.Metadata
Desktop (please complete the following information):
dotnet list package
Project 'EfPostgresPotionalFk' has the following package references
[net7.0]:
Top-level Package Requested Resolved
> EntityFrameworkCore.FSharp 6.0.7 6.0.7
> FSharp.Core 7.0.402 7.0.402
> FSharpPlus 1.5.0 1.5.0
> Microsoft.EntityFrameworkCore.Design 6.0.25 6.0.25
> Npgsql.EntityFrameworkCore.PostgreSQL 6.0.22 6.0.22
Additional context
If I just remove the empty open statement, the project seems to compile and work as expected, so this issue isn't a real show stopper for me
Split from https://github.com/efcore/EFCore.FSharp/issues/160#issuecomment-1813850445
Describe the bug
When utilizing Npgsql's JSONB to POCO mapping,
Migrations/*Snapshot.fs
gets emitted with an empty, malformedopen
statement:To Reproduce I think this mode of utilizing JSON columns, which I started exploring recently, produces an empty
open
statement https://www.npgsql.org/efcore/mapping/json.html#poco-mappingThat is, with Npgsql, using
[Column(TypeName = "jsonb")]
enables an arbitrary type (e.g.,Customer
) to be included as part of an entity (e.g.,SomeEntity
), without the need to register the former as an entity usingDbSet
. I can imagine this being a tricky corner case for the migration builder.Expected behavior
Desktop (please complete the following information):
Additional context
If I just remove the empty
open
statement, the project seems to compile and work as expected, so this issue isn't a real show stopper for me