ModelBuilder' 不包含 'ApplyAllConfigurations' 的定义?
ModelBuilder' does not contain a definition for 'ApplyAllConfigurations'?
我正在关注 this youtube video and at time 34:05,它是 ASP.Net 核心的架构,使用 EntityFramework 核心,他们展示了一种扩展方法
modelBuilder.ApplyAllConfigurations();
我在我的代码中试过这个,它抛出错误:
'ModelBuilder' 不包含 'ApplyAllConfigurations' 的定义,并且找不到可访问的扩展方法 'ApplyAllConfigurations' 接受类型 'ModelBuilder' 的第一个参数(您是否缺少使用指令或程序集引用?
我是否遗漏了任何参考资料?如果没有,我如何在我的项目中实现它?
检查您的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
在同一个程序集中。否则在扩展方法中明确指定程序集名称。
我正在关注 this youtube video and at time 34:05,它是 ASP.Net 核心的架构,使用 EntityFramework 核心,他们展示了一种扩展方法
modelBuilder.ApplyAllConfigurations();
我在我的代码中试过这个,它抛出错误: 'ModelBuilder' 不包含 'ApplyAllConfigurations' 的定义,并且找不到可访问的扩展方法 'ApplyAllConfigurations' 接受类型 'ModelBuilder' 的第一个参数(您是否缺少使用指令或程序集引用?
我是否遗漏了任何参考资料?如果没有,我如何在我的项目中实现它?
检查您的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
在同一个程序集中。否则在扩展方法中明确指定程序集名称。