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()); }
internal EntityMapper(EntityMapping entityMapping, PrimaryKeyValueProvider defaultPrimaryKeyValueProvider, TimestampValueProvider defaultTimestampValueProvider) { this.entityMapping = entityMapping; DefaultPrimaryKeyValueProvider = defaultPrimaryKeyValueProvider; DefaultTimestampValueProvider = defaultTimestampValueProvider; }
// 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)); }
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)); } }