private void AddSSDLTable(SSDL.EntityType.EntityType ssdlTable) { if (MappingInit || ssdlTable == null) { return; } foreach (var column in ssdlTable.Properties) { var prop = EntityType.ScalarProperties.Union(EntityType.Keys).FirstOrDefault(p => p.Name == column.Name); if (prop == null) { foreach (var complexProp in EntityType.ComplexProperties) { if (TryToAddSSDLColumnToComplexProperty(complexProp, () => { if (ComplexMapping.ContainsKey(complexProp)) { return(ComplexMapping[complexProp]); } else { var subComplexMapping = new ComplexPropertyMapping(EntityType, complexProp); ComplexMapping.Add(complexProp, subComplexMapping); return(subComplexMapping); } }, column)) { break; } } } else { AddMapping(prop, column); } } OnPropertyChanged("IsCompletlyMapped"); }