public void LocateEntityContainer() { const string csdl = @"<?xml version=""1.0"" encoding=""utf-16""?> <Schema Namespace=""Hot"" Alias=""Fuzz"" xmlns=""http://docs.oasis-open.org/odata/ns/edm""> <EntityType Name=""Person""> <Key> <PropertyRef Name=""Id"" /> </Key> <Property Name=""Id"" Type=""Int32"" Nullable=""false"" /> <Property Name=""Address"" Type=""String"" MaxLength=""100"" /> </EntityType> <EntityType Name=""Pet""> <Key> <PropertyRef Name=""PetId"" /> </Key> <Property Name=""Id"" Type=""Int32"" Nullable=""false"" /> <Property Name=""OwnerId"" Type=""Int32"" Nullable=""false"" /> </EntityType> <EntityContainer Name=""Wild""> <EntitySet Name=""People"" EntityType=""Hot.Person"" /> <EntitySet Name=""Pets"" EntityType=""Hot.Pet"" /> </EntityContainer> </Schema>"; IEdmModel model; IEnumerable <EdmError> errors; bool parsed = SchemaReader.TryParse(new XmlReader[] { XmlReader.Create(new StringReader(csdl)) }, out model, out errors); Assert.IsTrue(parsed, "parsed"); Assert.IsTrue(errors.Count() == 0, "No errors"); IEdmEntityType person = (IEdmEntityType)model.FindType("Hot.Person"); IEdmProperty personId = person.FindProperty("Id"); IEdmProperty personAddress = person.FindProperty("Address"); IEdmEntityType pet = (IEdmEntityType)model.FindType("Hot.Pet"); IEdmProperty petId = pet.FindProperty("Id"); IEdmProperty ownerId = pet.FindProperty("OwnerId"); IEdmEntityContainer wild = model.EntityContainer; IEdmEntitySet people = model.EntityContainer.FindEntitySet("People"); IEdmEntitySet pets = model.EntityContainer.FindEntitySet("Pets"); AssertCorrectLocation((CsdlLocation)person.Location(), csdl, @"EntityType Name=""Person"""); AssertCorrectLocation((CsdlLocation)personId.Location(), csdl, @"Property Name=""Id"" Type=""Int32"" Nullable=""false"""); AssertCorrectLocation((CsdlLocation)personAddress.Location(), csdl, @"Property Name=""Address"" Type=""String"" MaxLength=""100"" "); AssertCorrectLocation((CsdlLocation)pet.Location(), csdl, @"EntityType Name=""Pet"""); AssertCorrectLocation((CsdlLocation)petId.Location(), csdl, @"Property Name=""Id"" Type=""Int32"" Nullable=""false"" "); AssertCorrectLocation((CsdlLocation)ownerId.Location(), csdl, @"Property Name=""OwnerId"" Type=""Int32"" Nullable=""false"" "); AssertCorrectLocation((CsdlLocation)wild.Location(), csdl, @"EntityContainer Name=""Wild"""); AssertCorrectLocation((CsdlLocation)people.Location(), csdl, @"EntitySet Name=""People"" EntityType=""Hot.Person"" "); AssertCorrectLocation((CsdlLocation)pets.Location(), csdl, @"EntitySet Name=""Pets"" EntityType=""Hot.Pet"" "); }