private void RegisterFieldMetadata(ModelProperty property, FieldMetadata metadata, ForeignKeyFieldMetadata viaForeignKey, IConverter converter) { base.RegisterFieldMetadata(property, metadata, converter); var tableName = GetTableName(metadata.FieldName); ITinyDictionary <ForeignKeyFieldMetadata, List <int> > tableMetadata; if (!_tableMetadata.TryGetValue(tableName, out tableMetadata)) { tableMetadata = EmptyTinyDictionary <ForeignKeyFieldMetadata, List <int> > .Instance; _tableMetadata = _tableMetadata.AddOrUpdate(tableName, tableMetadata); } List <int> tableProperties; if (!tableMetadata.TryGetValue(viaForeignKey, out tableProperties)) { tableProperties = new List <int>(); tableMetadata = tableMetadata.AddOrUpdate(viaForeignKey, tableProperties); _tableMetadata.AddOrUpdate(tableName, tableMetadata); } tableProperties.Add(property.Key); _queryString = null; }
/// <summary> /// Registers metadata for a <see cref="ModelProperty"/>. /// </summary> /// <param name="property">Property to register metadata for.</param> /// <param name="metadata">Metadata for the field on the related object.</param> /// <param name="viaForeignKey">Metadata for the ForeignKey column on the primary object that maps to the related object.</param> protected void RegisterFieldMetadata(ModelProperty property, FieldMetadata metadata, ForeignKeyFieldMetadata viaForeignKey) { RegisterFieldMetadata(property, metadata, viaForeignKey, null); }