Пример #1
0
        public CollectonReader(IReadOnlyCollection <object> collection, IPropertyInfoProvider propertyInfoProvider)
        {
            _propertyInfoProvider = propertyInfoProvider;

            _collectionEnumerator = collection.GetEnumerator();
            HasRows = collection.Count > 0;
        }
Пример #2
0
 public RelationsGetterVisitor(IClassVisitor cv, IEntityMetaData metaData, ValueHolderIEC valueHolderContainerHelper, IPropertyInfoProvider propertyInfoProvider)
     : base(cv)
 {
     this.metaData = metaData;
     this.valueHolderContainerHelper = valueHolderContainerHelper;
     this.propertyInfoProvider       = propertyInfoProvider;
 }
        public InitializeEmbeddedMemberVisitor(IClassVisitor cv, IEntityMetaData metaData, String memberPath, IPropertyInfoProvider propertyInfoProvider)
            : base(cv)
        {
            this.metaData        = metaData;
            this.memberPath      = memberPath;
            this.memberPathSplit = memberPath != null?EmbeddedMember.Split(memberPath) : null;

            this.propertyInfoProvider = propertyInfoProvider;
        }
Пример #4
0
 public ValueHolderContainerEntry(Type targetType, RelationMember[] members, IBytecodeEnhancer bytecodeEnhancer,
                                  IPropertyInfoProvider propertyInfoProvider, IMemberTypeProvider memberTypeProvider)
 {
     entries = new ValueHolderEntry[members.Length];
     try
     {
         for (int relationIndex = members.Length; relationIndex-- > 0;)
         {
             RelationMember   member  = members[relationIndex];
             ValueHolderEntry vhEntry = new ValueHolderEntry(targetType, member, bytecodeEnhancer, propertyInfoProvider, memberTypeProvider);
             entries[relationIndex] = vhEntry;
         }
     }
     catch (Exception e)
     {
         throw RuntimeExceptionUtil.Mask(e, "Error occured while processing type '" + targetType.FullName + "'");
     }
 }
Пример #5
0
 public static void BulkInsert(
     this SqlConnection connection,
     string tableName,
     IReadOnlyCollection <object> source,
     IPropertyInfoProvider provider,
     SqlTransaction transaction = null,
     int?batchSize = null,
     int?timeout   = null)
 {
     using (var bulkCopy = CreateSqlBulkCopy(connection, tableName, transaction, batchSize, timeout))
         using (var reader = new CollectonReader(source, provider))
         {
             for (var i = 0; i < reader.FieldCount; i++)
             {
                 bulkCopy.ColumnMappings.Add(new SqlBulkCopyColumnMapping(i, reader.GetName(i)));
             }
             bulkCopy.WriteToServer(reader);
         }
 }
Пример #6
0
        private static void BulkInsertInternal(SqlConnection connection, string tableName,
                                               IReadOnlyCollection <object> source, IPropertyInfoProvider provider,
                                               int?batchSize = null, int?timeout = null)
        {
            using (var bulkCopy = new SqlBulkCopy(connection))
            {
                bulkCopy.DestinationTableName = tableName;
                bulkCopy.BatchSize            = batchSize ?? 4096;
                bulkCopy.BulkCopyTimeout      = timeout ?? 0;

                using (var reader = new CollectonReader(source, provider))
                {
                    for (var i = 0; i < reader.FieldCount; i++)
                    {
                        bulkCopy.ColumnMappings.Add(new SqlBulkCopyColumnMapping(i, reader.GetName(i)));
                    }
                    bulkCopy.WriteToServer(reader);
                }
            }
        }
Пример #7
0
 public DataObjectVisitor(IClassVisitor cv, IEntityMetaData metaData, IPropertyInfoProvider propertyInfoProvider)
     : base(cv)
 {
     this.metaData             = metaData;
     this.propertyInfoProvider = propertyInfoProvider;
 }
Пример #8
0
 public static void BulkInsert(this SqlConnection connection, string tableName,
                               IReadOnlyCollection <object> source, IPropertyInfoProvider provider,
                               int?batchSize = null, int?timeout = null)
 {
     BulkInsertInternal(connection, tableName, source, provider, batchSize, timeout);
 }
Пример #9
0
        public ValueHolderEntry(Type targetType, RelationMember member, IBytecodeEnhancer bytecodeEnhancer, IPropertyInfoProvider propertyInfoProvider,
                                IMemberTypeProvider memberTypeProvider)
        {
            this.member     = member;
            this.memberName = member.Name;
            String lastPropertyName = memberName;
            String prefix           = "";

            if (member is IEmbeddedMember)
            {
                IEmbeddedMember embeddedMember = (IEmbeddedMember)member;
                lastPropertyName = embeddedMember.ChildMember.Name;

                prefix = embeddedMember.GetMemberPathString() + ".";
            }
            state       = memberTypeProvider.GetMember(targetType, prefix + ValueHolderIEC.GetInitializedFieldName(lastPropertyName));
            objRefs     = memberTypeProvider.GetMember(targetType, prefix + ValueHolderIEC.GetObjRefsFieldName(lastPropertyName));
            directValue = memberTypeProvider.GetMember(targetType, prefix + lastPropertyName + ValueHolderIEC.GetNoInitSuffix());
        }
Пример #10
0
        public static IPropertyInfo[] BuildPropertyPath(Type entityType, String memberName, IPropertyInfoProvider propertyInfoProvider)
        {
            String[] memberPath = EmbeddedMember.Split(memberName);
            Type     currType   = entityType;

            IPropertyInfo[] propertyPath = new IPropertyInfo[memberPath.Length];
            for (int a = 0, size = propertyPath.Length; a < size; a++)
            {
                IPropertyInfo property = propertyInfoProvider.GetProperty(currType, memberPath[a]);
                if (property == null)
                {
                    FieldInfo[] fields = ReflectUtil.GetDeclaredFieldInHierarchy(currType, memberPath[a]);
                    if (fields.Length == 0)
                    {
                        throw new Exception("Path illegal: " + memberName);
                    }
                    property = new FieldPropertyInfo(currType, memberPath[a], fields[a]);
                }
                propertyPath[a] = property;
                currType        = property.PropertyType;
            }
            return(propertyPath);
        }
Пример #11
0
 protected static void ScanForLogInstance(IBeanPreProcessor beanPreProcessor, IPropertyInfoProvider propertyInfoProvider, IProperties properties, Object bean)
 {
     IPropertyInfo[] props = propertyInfoProvider.GetProperties(bean.GetType());
     beanPreProcessor.PreProcessProperties(null, null, properties, null, bean, bean.GetType(), null, EmptySet.Empty <String>(), props);
 }
Пример #12
0
 public MethodHandleValueResolver(IPropertyInfoProvider propertyInfoProvider, String propertyName)
 {
     this.propertyInfoProvider = propertyInfoProvider;
     this.propertyName         = propertyName;
 }