Npgsql / EF 6 - json column

I am trying to create a migration using a JSON column. Here is what I tried:

    [Column(TypeName = "Jsonb")]
    public string Data { get; set; }

    [Column(TypeName = "Json")]
    public string Data { get; set; }

    modelBuilder.Entity<Member>().Property(p => p.Data).HasColumnType("Json");

    modelBuilder.Entity<Member>().Property(p => p.Data).HasColumnType("Jsonb");

Nothing works, here is the exception:

System.InvalidOperationException: The sequence does not contain the corresponding element in System.Linq.Enumerable.Single [TSource] (IEnumerable 1 source, FuncPredicate in System.Data.Entity.ModelConfiguration.Configuration.Properties.Primitive.PrimitivePropertyConfiguration.Configure (column EdmProperty, table EntityType, DbProviderManifest providerManifest, boolean value allowOverride. PrimitivePropertyConfiguration. <> c__DisplayClass4.b__3 (Tuple 2 pm) at System.Data.Entity.Utilities.IEnumerableExtensions.Each[T](IEnumerable1 ts, Action1 action) at System.Data.Entity.ModelConfiguration.Configuration.Properties.Primitive.PrimitivePropertyConfiguration.Configure(IEnumerable1 propertyMappings, DbProviderManifest providerManifest, Boolean allowOverride, Boolean fillFromExistingConfiguration) in System.Data.Entity.ModelConfiguration.Configuration.Types.StructuralTypeConfiguration.ConfigurePropertyMappings (IList 1 propertyMappings, DbProviderManifest providerManifest, Boolean allowOverride) at System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration.ConfigurePropertyMappings(DbDatabaseMapping databaseMapping, EntityType entityType, DbProviderManifest providerManifest, Boolean allowOverride) at System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration.Configure(EntityType entityType, DbDatabaseMapping databaseMapping, DbProviderManifest providerManifest) at System.Data.Entity.ModelConfiguration.Configuration.ModelConfiguration.ConfigureEntityTypes(DbDatabaseMapping databaseMapping, ICollection1 entitySets, DbProviderManifest providerManifest) in System.Data.Entity.ModelConfiguration.Configuration.ModelConfiguration.Configure (DbDatabaseMapping databaseMapping, DbProviderManifest providerManifest) in System.Data.Entity.DbModelBuilder.Build (DbProviderManifest providerManifest, DbProviderInfo providerInfo) in System.Data.Entity.DbModelBuilder.Build providerConnection.bonnodenternetnntnntnntnnntnnntnntnnntnnntnnntnnntnnntnnntnnntnnntnenntnnntnnntnntnnntnntnnntennntnntnnntnnntnnntnonnntnntnntnnest.nnten (LazyInternalContext internalContext) in System.Data.Entity.Internal.RetryLazy2.GetValue(TInput input) at System.Data.Entity.Internal.LazyInternalContext.InitializeContext() at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) at System.Data.Entity.Internal.Linq.InternalSet1.Initialize () in System.Data.Entity.Internal.Linq.InternalSet 1.get_InternalContext() at System.Data.Entity.Internal.Linq.InternalSet1.get_Local () in System.Data.Entity.DbSet`1.get_Local () on System.Data.Entity.DbModelBuilderExtensions.RegisterUserAccountChildTablesForDecc [TKey , TUserClaim, TLinkedAccount, TLinkedAccountClaim, TPasswordResetSecret, TTwoFactorAuthToken, TUserCertificate] (DbContext CTX) in C: \ Ballen \ GitHub \ brockallen \ BrockAllen.MembershipReboot \ SRCMElBlemblbremblblebremblebremblebremblebremblebrembl

Here is my configuration:

<package id="EntityFramework" version="6.1.1" targetFramework="net452" />
<package id="EntityFramework6.Npgsql" version="3.1.1" targetFramework="net452" />
<package id="Npgsql" version="3.1.6" targetFramework="net452" />
+4
source share
1 answer

, , , . data, storeType defaultValueSql:

data = c.String(nullable: false, storeType: "jsonb", defaultValueSql: "'{}'::jsonb")

, Npgsql 3.1.7 EntityFramework6.Npgsql 3.1.1 . .

+1

Source: https://habr.com/ru/post/1648118/


All Articles