模型构建器"不包含"应用所有配置"的定义?



我正在关注这个YouTube视频,时间34:05,它是使用EntityFramework Core的 ASP.Net 核心的架构,他们正在展示一种扩展方法

    modelBuilder.ApplyAllConfigurations();

我在代码中尝试过这个,它抛出错误:"模型构建器"不包含"应用所有配置"的定义,并且找不到接受类型为"模型构建器"的第一个参数的可访问扩展方法"应用所有配置"(是否缺少 using 指令或程序集引用?

我错过了任何参考吗?如果没有,我如何在我的项目中实现这一点?

检查您的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位于同一程序集中。其他明智的做法在扩展方法中显式指定程序集名称。

相关内容

  • 没有找到相关文章

最新更新