예제 #1
0
        }                                  //=> Collection<City>();

        protected override void CreateModel(IVfpModelBuilder modelBuilder)
        {
            base.CreateModel(modelBuilder);

            modelBuilder.Entity <City>(b =>
            {
                b.CollectionName = "MyCities";
            });
        }
예제 #2
0
        protected virtual void BuildModelFromDbContextCollectionProperty(IVfpModelBuilder modelBuilder, PropertyInfo collectionProperty)
        {
            var entityType          = collectionProperty.PropertyType.GenericTypeArguments[0];
            var collectionAttribute = collectionProperty.GetCustomAttributes().OfType <VfpCollectionAttribute>().FirstOrDefault();

            modelBuilder.Entity(entityType, b =>
            {
                b.CollectionName = collectionAttribute?.CollectionName ?? collectionProperty.Name;
            });
        }
예제 #3
0
        protected virtual void BuildModelFromDbContextType(IVfpModelBuilder modelBuilder, Type dbContextType)
        {
            var collectionProperties =
                from property in dbContextType.GetTypeInfo().GetProperties(BindingFlags.Public | BindingFlags.Instance)
                where
                ReflectionHelper.IsAssignableToGenericType(property.PropertyType, typeof(DbSet <>)) &&
                typeof(IEntity).IsAssignableFrom(property.PropertyType.GenericTypeArguments[0])
                select property;

            foreach (var collectionProperty in collectionProperties)
            {
                BuildModelFromDbContextCollectionProperty(modelBuilder, collectionProperty);
            }
        }
예제 #4
0
 protected internal virtual void CreateModel(IVfpModelBuilder modelBuilder)
 {
 }
예제 #5
0
 protected virtual void BuildModelFromDbContextInstance(IVfpModelBuilder modelBuilder, AbpVfpContext dbContext)
 {
     dbContext.CreateModel(modelBuilder);
 }