ModelBuilder »не содержит определения для« ApplyAllConfigurations »? - PullRequest
0 голосов
/ 04 января 2019

Я слежу за этим видео на YouTube и в то время 34: 05 . Это архитектура для ядра ASP.Net с использованием EntityFramework Core, и они показывают метод расширения

    modelBuilder.ApplyAllConfigurations();

Я попробовал это в своем коде, и он выдает ошибку: ModelBuilder не содержит определения для ApplyAllConfigurations, и ни один доступный метод расширения ApplyAllConfigurations, принимающий первый аргумент типа ModelBuilder, не может бытьнайдено (вы пропустили директиву using или ссылку на сборку?

Я пропустил какую-либо ссылку? Если нет, как я могу реализовать это в моем проекте?

1 Ответ

0 голосов
/ 04 января 2019

Проверьте, правильно ли ваш ApplyAllConfigurations метод следующим образом.Я использую это, и он отлично работает.

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);
        }
    }

}

Примечание. Убедитесь, что этот метод расширения и ваш DbContext находятся в одной сборке.В противном случае укажите имя сборки явно в методе расширения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...