本文整理汇总了C#中ModelBuilder.GetType方法的典型用法代码示例。如果您正苦于以下问题:C# ModelBuilder.GetType方法的具体用法?C# ModelBuilder.GetType怎么用?C# ModelBuilder.GetType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ModelBuilder
的用法示例。
在下文中一共展示了ModelBuilder.GetType方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OnModelCreating
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
_logger.LogInformation("[{0}]: Mapping Records to DB Context", GetType().Name);
var sw = Stopwatch.StartNew();
var entityMethod = modelBuilder.GetType().GetRuntimeMethod("Entity", new Type[0]);
foreach (var assembly in _assemblyProvider.CandidateAssemblies.Distinct()) {
// Keep persistent attribute, but also introduce a convention like ContentPart
var entityTypes = assembly
.ExportedTypes
.Where(t =>
typeof(StorageDocument).IsAssignableFrom(t) &&
!t.GetTypeInfo().IsAbstract &&
!t.GetTypeInfo().IsInterface);
foreach (var type in entityTypes) {
_logger.LogDebug("Mapping record {0}", type.FullName);
entityMethod.MakeGenericMethod(type)
.Invoke(modelBuilder, new object[0]);
}
}
sw.Stop();
_logger.LogInformation("[{0}]: Records Mapped in {1}ms", GetType().Name, sw.ElapsedMilliseconds);
}
示例2: ConfigureEntities
public static IServiceProvider ConfigureEntities(this IServiceProvider serviceProvider, ModelBuilder modelBuilder)
{
var configurators = serviceProvider.GetServices<IEntityConfigurator>();
foreach (var configurator in configurators)
{
var configuratorType = configurator.GetType();
var genericConfiguratorInterface = configuratorType.GetInterfaces().Single(iface => iface.GetTypeInfo().IsGenericType && iface.GetGenericTypeDefinition() == typeof(IEntityConfigurator<>));
var modelType = genericConfiguratorInterface.GetGenericArguments()[0];
if (modelBuilder.Model.FindEntityType(modelType) != null)
{
var EntityPr = modelBuilder.GetType().GetMethod("Entity", new Type[] { }).MakeGenericMethod(modelType);
var ConfigureFn = configurator.GetType().GetMethod("Configure");
var entityBuilder = EntityPr.Invoke(modelBuilder, new object[] { });
ConfigureFn.Invoke(configurator, new[] { entityBuilder });
}
}
return serviceProvider;
}