我正在关注这个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
位于同一程序集中。其他明智的做法在扩展方法中显式指定程序集名称。