/// <summary> /// Gets the name of the table in the database for the specified type, /// using the configured <see cref="ITableNameResolver"/>. /// </summary> /// <param name="type">The <see cref="Type"/> to get the table name for.</param> /// <param name="sqlBuilder">The SQL builder instance.</param> /// <returns>The table name in the database for <paramref name="type"/>.</returns> public static string Table(Type type, ISqlBuilder sqlBuilder) { var key = $"{sqlBuilder.GetType()}.{type}"; if (!_typeTableNameCache.TryGetValue(key, out var name)) { name = sqlBuilder.QuoteIdentifier(TableNameResolver.ResolveTableName(type)); _typeTableNameCache.TryAdd(key, name); } LogReceived?.Invoke($"Resolved table name '{name}' for '{type}'"); return(name); }
private Mapping Get(Type type) { lock (_mappings) { if (_mappings.TryGetValue(type, out var mapping)) { return(mapping); } mapping = new Mapping { TableName = _tableNameResolver.ResolveTableName(type) }; foreach (var p in GetScaffoldableProperties(type, true)) { mapping.ColumnName.Add(p, _columnNameResolver.ResolveColumnName(p)); } _mappings.AddOrUpdate(type, t => mapping, (t, m2) => mapping); return(mapping); } }