title: Entity Framework Core - complex type mapped as jsonb column in postgres but mapping fails for InMemory provider
body: <p>there is a type with complex property as the following:</p>
  <pre><code>[Table(&quot;contact&quot;)]
  public class Contact
  {
      [Key]
      [Column(&quot;id&quot;)]
      public int Id { get; set; }
  
      [Column(&quot;details&quot;, TypeName = &quot;jsonb&quot;)]
      public Details Details { get; set; }
  
      ... 
  }
      [ComplexType]
      public class Details
      {
          [JsonProperty(&quot;firstName&quot;)]
          public string FirstName { get; set; }
  
          [JsonProperty(&quot;middleName&quot;)]
          public string MiddleName { get; set; }
  
          [JsonProperty(&quot;lastName&quot;)]
          public string LastName { get; set; }
      }
  </code></pre>
  <p>that works fine for pgsql provider:</p>
  <pre><code>services.AddDbContextPool&lt;ProfileDbContext&gt;((sp, options) =&gt;
              {
                  options.UseNpgsql(connStr,
                      x =&gt;
                      {
                          x.EnableRetryOnFailure();
                          x.CommandTimeout(120);
                      });
              });
  </code></pre>
  <p>but when replacing it in TestsStartup with InMemory provider</p>
  <pre><code>services.AddDbContextPool&lt;ProfileDbContext&gt;(options =&gt;
              {
                  ServiceProvider sp = new ServiceCollection()
                      .AddEntityFrameworkInMemoryDatabase()
                      .BuildServiceProvider();
  
                  options.UseInMemoryDatabase(&quot;Profile&quot;, _databaseRoot);
                  options.UseInternalServiceProvider(sp);
              });
  </code></pre>
  <p>getting an error:</p>
  <blockquote>
  <p>The entity type 'Details' requires a primary key to be defined.If you
  intended to use a keyless entity type call 'HasNoKey()'.</p>
  </blockquote>
  <p>if I specify through fluent configuration the association OwnsOne it works for InMemory but fails when launching a normal startup with pgsql provider</p>
  <pre><code>protected override void OnModelCreating(ModelBuilder modelBuilder)
  {
     modelBuilder.Entity&lt;Contact&gt;(c =&gt; c.OwnsOne(e =&gt; e.Details));
  }
  </code></pre>
  <p>I suppose due to this jsonb filed type, which is not supported by InMemory provider, is it?</p>
  <p>What to do with integration tests, than?</p>
  <p>we used in-memory provider for all tests but this jsonb feature seems brokes lifehack with in-memory provider.</p>