Search code examples
asp.net-coreentity-framework-coredbcontextef-fluent-apief-model-builder

ModelBuilder' does not contain a definition for 'ApplyAllConfigurations'?


I am following this youtube video and at time 34:05, It is architecure for ASP.Net core using EntityFramework Core and they are showing an extension method

    modelBuilder.ApplyAllConfigurations();

I tried this in my code and it throws error: 'ModelBuilder' does not contain a definition for 'ApplyAllConfigurations' and no accessible extension method 'ApplyAllConfigurations' accepting a first argument of type 'ModelBuilder' could be found (are you missing a using directive or an assembly reference?

Am I missing any reference? If not, How can I implement this in my Project?


Solution

  • Check whether your ApplyAllConfigurations method as follows. I am using this and its working perfectly.

    public static class ModelBuilderExtensions
    {
        public static void ApplyAllConfigurations(this ModelBuilder modelBuilder)
        {
            var typesToRegister = Assembly.GetExecutingAssembly().GetTypes().Where(t => t.GetInterfaces()
                .Any(gi => gi.IsGenericType && gi.GetGenericTypeDefinition() == typeof(IEntityTypeConfiguration<>))).ToList();
    
            foreach (var type in typesToRegister)
            {
                dynamic configurationInstance = Activator.CreateInstance(type);
                modelBuilder.ApplyConfiguration(configurationInstance);
            }
        }
    
    }
    

    Note: Ensure that this extension method and your DbContext are in the same Assembly. Other wise specify the assembly name explicitly in the extension method.