private bool TryToAddSSDLColumnToComplexProperty(ComplexProperty complexProperty, Func <MappingBase> mapping, SSDL.Property.Property column) { var prop = complexProperty.ComplexType.ScalarProperties.FirstOrDefault(p => p.Name == column.Name); if (prop != null) { mapping().AddMapping(prop, column); return(true); } foreach (var complexProp in complexProperty.ComplexType.ComplexProperties) { if (TryToAddSSDLColumnToComplexProperty(complexProp, () => { var complexMapping = mapping().ComplexMapping; if (complexMapping.ContainsKey(complexProp)) { return(complexMapping[complexProp]); } var complexPropMapping = new ComplexPropertyMapping(EntityType, complexProp); complexMapping.Add(complexProp, complexPropMapping); return(complexPropMapping); }, column)) { return(true); } } return(false); }
private bool IsComplexTPC(ComplexPropertyMapping complexPropertyMapping) { if (EntityType.BaseType == null) { return(false); } if (EntityType.BaseType.AllComplexProperties.Any(ecp => ecp == complexPropertyMapping.ComplexProperty)) { return(true); } return(false); }
public virtual ComplexPropertyMapping GetSpecificMappingCreateIfNull(ComplexProperty complexProperty) { var value = GetSpecificMapping(complexProperty); if (value != null) { return(value); } value = new ComplexPropertyMapping(EntityType, complexProperty); ComplexMapping.Add(complexProperty, value); EntityType.Mapping.OnPropertyChanged("IsCompletlyMapped"); return(value); }
public ComplexPropertyMapping this[ComplexProperty complexProperty] { get { var value = GetMapping(complexProperty); if (value != null) { return(value); } value = new ComplexPropertyMapping(EntityType, complexProperty); ComplexMapping.Add(complexProperty, value); EntityType.Mapping.OnPropertyChanged("IsCompletlyMapped"); return(value); } }
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"); }
private bool IsComplexTPC(ComplexPropertyMapping complexPropertyMapping) { if (EntityType.BaseType == null) return false; if (EntityType.BaseType.AllComplexProperties.Any(ecp => ecp == complexPropertyMapping.ComplexProperty)) return true; return false; }
private bool TryToAddSSDLColumnToComplexProperty(ComplexProperty complexProperty, Func<MappingBase> mapping, SSDL.Property.Property column) { var prop = complexProperty.ComplexType.ScalarProperties.FirstOrDefault(p => p.Name == column.Name); if (prop != null) { mapping().AddMapping(prop, column); return true; } foreach (var complexProp in complexProperty.ComplexType.ComplexProperties) if (TryToAddSSDLColumnToComplexProperty(complexProp, () => { var complexMapping = mapping().ComplexMapping; if (complexMapping.ContainsKey(complexProp)) return complexMapping[complexProp]; var complexPropMapping = new ComplexPropertyMapping(EntityType, complexProp); complexMapping.Add(complexProp, complexPropMapping); return complexPropMapping; }, column)) return true; return false; }
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"); }