EF Core: Method 'ProcessModelFinalized' does not have implementation

asp.net-core c# entity-framework-core

Question

I'm facing an error while trying to obtain information of the DbSets in a DbContext object by using Entity Framework core.

My DbContext object looks this way:

public class CatalogueContext : DbContext
{
    public DbSet<ConnectorCatalogueItemConv> CatalogueItemConvs { get; set; }

    public CatalogueContext(DbContextOptions<CatalogueContext> options)
        : base(options)
    {

    }

    public CatalogueContext()
    {

    }
}

I'm trying to instante the context by calling a method which receives a generic type T which might be childs of DbContext this way:

public T GetContext<T>() where T: DbContext, new()
{
    var optionsBuilder = new DbContextOptionsBuilder<T>();
    var connectionString = Configuration.GetConnectionString(ExternalTablesKey);
    optionsBuilder.UseSqlServer(connectionString);
    return Activator.CreateInstance(typeof(T), optionsBuilder.Options) as T;
}

The connection string is obtained properly by using Microsoft.Extensions.Configuration so the problem it's not there.

Finally, I invoke this method and try to obtain any record on the DbSets declared as follows:

 public void SomeMethod()
 {
     using (var db = this.GetContext<CatalogueContext>())
     {
         var val = db.CatalogueItemConvs.ToList(); //Here is where I get the error below.
     }
 }

The error shown says:

Method 'ProcessModelFinalized' in type 'Microsoft.EntityFrameworkCore.Metadata.Conventions.SqlServerValueGenerationStrategyConvention' from assembly 'Microsoft.EntityFrameworkCore.SqlServer, Version=3.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' does not have an implementation.'

I searched everywhere, but seems to be that there's very few information about this error. Any thoughts?

EDIT 1: My solution includes Microsoft.EntityFrameworkCore.SqlServer in version 3.0.0.0

EDIT 2: As requested, I have edited the code to include only one entity and its class declaration. There's no mapping at this point.

public class ConnectorCatalogueItemConv
{
    public string CodConnector { get; set; }
    public string CodCatalogue { get; set; }
    public string CodItemCia { get; set; }
    public string CodItemInbk { get; set; }
    public bool Defaultvalue { get; set; }
}

EDIT 3: How to instantiate a DbContext in EF Core

1
1
3/20/2020 8:25:11 PM

Accepted Answer

I have also faced the same error, I have update my Microsoft.EntityFrameworkCore.SqlServer and Microsoft.EntityFrameworkCore.Tools to Version 5.0 and then it worked,

2
3/21/2020 3:57:37 PM


Related Questions





Related

Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow