示例#1
0
文件: Mapper.cs 项目: kdakan/DbMapper
        internal void NewPrimaryKey <T>(Enum columnName, Expression <Func <T, object> > memberExpression, Enum sequenceName, Enum schemaName, Enum dbFunctionName, Func <object> functionDelegate, PrimaryKeyValueProvider primaryKeyValueProvider)
        {
            DB.throwIfNullOrEmpty <MappingException>(columnName, "Column name");

            if (primaryKeyValueProvider == PrimaryKeyValueProvider.AppFunctionDelegate)
            {
                DB.throwIfNullOrEmpty <MappingException>(functionDelegate, "Function delegate");
            }
            else if (primaryKeyValueProvider == PrimaryKeyValueProvider.Sequence)
            {
                DB.throwIfNullOrEmpty <MappingException>(sequenceName, "Sequence name");
            }
            else if (primaryKeyValueProvider == PrimaryKeyValueProvider.DBFunction)
            {
                //DB.throwIfNullOrEmpty<MappingException>(schemaName, "Schema name");
                DB.throwIfNullOrEmpty <MappingException>(dbFunctionName, "DB function name");
            }

            string nestedPrimaryKeyPropertyName = parseNestedPropertyNameFromMemberExpression <T>(memberExpression);

            DB.throwIfNullOrEmpty <MappingException>(nestedPrimaryKeyPropertyName, "Primary key property name");

            entityMapping.PrimaryKeyMapping.AddProperty(nestedPrimaryKeyPropertyName, sequenceName, schemaName, dbFunctionName, functionDelegate, primaryKeyValueProvider);
            newColumn(columnName, nestedPrimaryKeyPropertyName, true, false);
            entityMapping.RefreshPrimaryKeyColumnNameList();

            entityMapping.throwIfAutoSetAndPrimaryKeyColumn(columnName.ToString());
        }
示例#2
0
文件: Mapper.cs 项目: kdakan/DbMapper
 internal EntityMapper(EntityMapping entityMapping, PrimaryKeyValueProvider defaultPrimaryKeyValueProvider, TimestampValueProvider defaultTimestampValueProvider)
 {
     this.entityMapping             = entityMapping;
     DefaultPrimaryKeyValueProvider = defaultPrimaryKeyValueProvider;
     DefaultTimestampValueProvider  = defaultTimestampValueProvider;
 }
示例#3
0
文件: Mapper.cs 项目: kdakan/DbMapper
        // defaultPrimaryKeyValueProvider ve defaultTimestampValueProvider 0 da geçilebilir, bu değerler sadece mapping sırasında kullanılacak
        internal static EntityMapper NewTableEntity <T>(object tableName, Enum schemaName, Enum connectionName, PrimaryKeyValueProvider defaultPrimaryKeyValueProvider, TimestampValueProvider defaultTimestampValueProvider)
        {
            DB.throwIfKeyAlreadyExists <Type, EntityMapping, MappingException>(Map.entityMappingDictionaryAtMapper, typeof(T));
            DB.throwIfNullOrEmpty <MappingException>(tableName, "Table name");
            DB.throwIfNullOrEmpty <MappingException>(schemaName, "Schema name");
            DB.throwIfNullOrEmpty <MappingException>(connectionName, "Connection name");

            EntityMapping entityMapping = new EntityMapping(tableName.ToString(), schemaName.ToString(), connectionName.ToString(), typeof(T));

            Map.entityMappingDictionaryAtMapper.Add(typeof(T), entityMapping);

            return(new EntityMapper(entityMapping, defaultPrimaryKeyValueProvider, defaultTimestampValueProvider));
        }
示例#4
0
 public static TableEntityMapper <T> Table(object tableName, Enum schemaName, Enum connectionName, PrimaryKeyValueProvider defaultPrimaryKeyValueProvider, TimestampValueProvider defaultTimestampValueProvider)
 {
     lock (Map.lockerForMap) {
         EntityMapper entityMapper = EntityMapper.NewTableEntity <T>(tableName, schemaName, connectionName, defaultPrimaryKeyValueProvider, defaultTimestampValueProvider);
         return(new TableEntityMapper <T>(entityMapper));
     }
 }