/// <summary> /// Adds a child EntitySet's tableKey (Schema/Table combination) to the validation collection /// This is used to validate that no child EntitySets share a Schema.Table combination /// </summary> private void CheckForDuplicateTableMapping(HashSet <string> tableKeys, EntityContainerEntitySet entitySet) { string schema; string table; if (String.IsNullOrEmpty(entitySet.DbSchema)) { // if there is no specified DbSchema, use the parent EntityContainer's name schema = Name; } else { schema = entitySet.DbSchema; } if (String.IsNullOrEmpty(entitySet.Table)) { // if there is no specified Table, use the EntitySet's name table = entitySet.Name; } else { table = entitySet.Table; } // create a key using the DbSchema and Table var tableKey = String.Format(CultureInfo.InvariantCulture, "{0}.{1}", schema, table); if (entitySet.DefiningQuery != null) { // don't consider the schema name for defining queries, because // we can't say for sure that it is the same as the entity container // so in this example // // <EntityContainer Name="dbo"> // <EntitySet Name="ByVal"> // <DefiningQuery>Select col1 from dbi.ByVal</DefiningQuery> // </EntitySet> // <EntitySet Name="ByVal1" Table="ByVal"/> // ... // // ByVal and ByVal1 should not conflict in our check tableKey = entitySet.Name; } var alreadyExisted = !tableKeys.Add(tableKey); if (alreadyExisted) { entitySet.AddError( ErrorCode.AlreadyDefined, EdmSchemaErrorSeverity.Error, Strings.DuplicateEntitySetTable(entitySet.Name, schema, table)); } }
private void CheckForDuplicateTableMapping( HashSet <string> tableKeys, EntityContainerEntitySet entitySet) { string str1 = !string.IsNullOrEmpty(entitySet.DbSchema) ? entitySet.DbSchema : this.Name; string str2 = !string.IsNullOrEmpty(entitySet.Table) ? entitySet.Table : entitySet.Name; string str3 = string.Format((IFormatProvider)CultureInfo.InvariantCulture, "{0}.{1}", (object)str1, (object)str2); if (entitySet.DefiningQuery != null) { str3 = entitySet.Name; } if (tableKeys.Add(str3)) { return; } entitySet.AddError(ErrorCode.AlreadyDefined, EdmSchemaErrorSeverity.Error, (object)Strings.DuplicateEntitySetTable((object)entitySet.Name, (object)str1, (object)str2)); }
// <summary> // Adds a child EntitySet's tableKey (Schema/Table combination) to the validation collection // This is used to validate that no child EntitySets share a Schema.Table combination // </summary> private void CheckForDuplicateTableMapping(HashSet<string> tableKeys, EntityContainerEntitySet entitySet) { string schema; string table; if (String.IsNullOrEmpty(entitySet.DbSchema)) { // if there is no specified DbSchema, use the parent EntityContainer's name schema = Name; } else { schema = entitySet.DbSchema; } if (String.IsNullOrEmpty(entitySet.Table)) { // if there is no specified Table, use the EntitySet's name table = entitySet.Name; } else { table = entitySet.Table; } // create a key using the DbSchema and Table var tableKey = String.Format(CultureInfo.InvariantCulture, "{0}.{1}", schema, table); if (entitySet.DefiningQuery != null) { // don't consider the schema name for defining queries, because // we can't say for sure that it is the same as the entity container // so in this example // // <EntityContainer Name="dbo"> // <EntitySet Name="ByVal"> // <DefiningQuery>Select col1 from dbi.ByVal</DefiningQuery> // </EntitySet> // <EntitySet Name="ByVal1" Table="ByVal"/> // ... // // ByVal and ByVal1 should not conflict in our check tableKey = entitySet.Name; } var alreadyExisted = !tableKeys.Add(tableKey); if (alreadyExisted) { entitySet.AddError( ErrorCode.AlreadyDefined, EdmSchemaErrorSeverity.Error, Strings.DuplicateEntitySetTable(entitySet.Name, schema, table)); } }