private EntityTypeConfiguration(EntityTypeConfiguration source) : base(source) { DebugCheck.NotNull(source); _keyProperties.AddRange(source._keyProperties); _keyConfiguration = source._keyConfiguration; source._indexConfigurations.Each( c => _indexConfigurations.Add(c.Key, c.Value.Clone())); source._navigationPropertyConfigurations.Each( c => _navigationPropertyConfigurations.Add(c.Key, c.Value.Clone())); source._entitySubTypesMappingConfigurations.Each( c => _entitySubTypesMappingConfigurations.Add(c.Key, c.Value.Clone())); _entityMappingConfigurations.AddRange( source._entityMappingConfigurations.Except(source._nonCloneableMappings).Select(e => e.Clone())); _entitySetName = source._entitySetName; if (source._modificationStoredProceduresConfiguration != null) { _modificationStoredProceduresConfiguration = source._modificationStoredProceduresConfiguration.Clone(); } IsReplaceable = source.IsReplaceable; IsTableNameConfigured = source.IsTableNameConfigured; IsExplicitEntity = source.IsExplicitEntity; foreach (var annotation in source._annotations) { _annotations.Add(annotation); } }
internal virtual Properties.Index.IndexConfiguration ConfigureKey() { if (_keyConfiguration == null) { _keyConfiguration = new Properties.Index.IndexConfiguration(); } return(_keyConfiguration); }
internal virtual Properties.Index.IndexConfiguration Index(PropertyPath indexProperties) { Properties.Index.IndexConfiguration indexConfiguration; if (!_indexConfigurations.TryGetValue(indexProperties, out indexConfiguration)) { _indexConfigurations.Add( indexProperties, indexConfiguration = new Properties.Index.IndexConfiguration()); } return(indexConfiguration); }
internal virtual void Key(IEnumerable <PropertyInfo> keyProperties) { DebugCheck.NotNull(keyProperties); ClearKey(); foreach (var property in keyProperties) { Key(property, OverridableConfigurationParts.None); } if (_keyConfiguration == null) { _keyConfiguration = new Properties.Index.IndexConfiguration(); } }
internal void ClearKey() { _keyProperties.Clear(); _keyConfiguration = null; }