Exemple #1
0
        public static ModelBuilder ApplyValueObjectConfiguration(this ModelBuilder builder, Action <ValueObjectConfigurationOptions> configureOptions)
        {
            Ensure.NotNull(builder, nameof(builder));

            var options = new ValueObjectConfigurationOptions();

            configureOptions?.Invoke(options);

            foreach (var entityType in builder.GetEntityTypes(typeof(ValueObject <>)))
            {
                if (options.Configure != null)
                {
                    builder.Entity(entityType.ClrType, entityTypeBuilder =>
                    {
                        options.Configure.Invoke(entityType, entityTypeBuilder);
                    });
                }

                if (options.ScalarPropertyNameFactory != null)
                {
                    foreach (var prop in entityType.GetProperties())
                    {
                        prop.SetColumnName(options.ScalarPropertyNameFactory(entityType, prop));
                    }
                }
            }

            return(builder);
        }
Exemple #2
0
        public static DbModelBuilder ApplyValueObjectConfiguration(this DbModelBuilder builder, Action <ValueObjectConfigurationOptions> configureOptions)
        {
            Ensure.NotNull(builder, nameof(builder));

            var options = new ValueObjectConfigurationOptions();

            configureOptions?.Invoke(options);

            builder.Types().Where(x => typeof(ValueObject <>).IsAssignableFromGenericType(x)).Configure(x =>
            {
                if (options.Configure != null)
                {
                    options.Configure.Invoke(x);
                }

                if (options.ScalarPropertyNameFactory != null)
                {
                    var props = x.ClrType.GetProperties(BindingFlags.Public | BindingFlags.Instance)
                                .Where(p => (!p.PropertyType.IsClass || p.PropertyType == typeof(String)) && !p.PropertyType.IsInterface);
                    foreach (var prop in x.ClrType.GetProperties(BindingFlags.Public | BindingFlags.Instance))
                    {
                        x.Property(prop).HasColumnName(options.ScalarPropertyNameFactory(x, prop));
                    }
                }
            });

            return(builder);
        }
        public static DbModelBuilder ApplyValueObjectConfiguration(this DbModelBuilder builder, Action <ValueObjectConfigurationOptions> configureOptions)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            var options = new ValueObjectConfigurationOptions();

            configureOptions?.Invoke(options);

            builder.Types().Where(x => typeof(ValueObject <>).IsAssignableFromGenericType(x)).Configure(x =>
            {
                if (options.Configure != null)
                {
                    options.Configure.Invoke(x);
                }
            });

            return(builder);
        }
        public static ModelBuilder ApplyValueObjectConfiguration(this ModelBuilder builder, Action <ValueObjectConfigurationOptions> configureOptions)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            var options = new ValueObjectConfigurationOptions();

            configureOptions?.Invoke(options);

            foreach (var entityType in builder.GetEntityTypes(typeof(ValueObject <>)))
            {
                if (options.Configure != null)
                {
                    builder.Entity(entityType.ClrType, entityTypeBuilder =>
                    {
                        options.Configure.Invoke(entityType, entityTypeBuilder);
                    });
                }
            }

            return(builder);
        }