当前位置: 首页>>代码示例>>C#>>正文


C# ModelBuilder.GetType方法代码示例

本文整理汇总了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);
        }
开发者ID:jrestall,项目名称:Brochard,代码行数:27,代码来源:DataContext.cs

示例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;
        }
开发者ID:rmja,项目名称:Persistence,代码行数:22,代码来源:ServiceProviderExtensions.cs


注:本文中的ModelBuilder.GetType方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。