2009-07-24 9 views
0

Ich versuche, um die Liste des EntityTypes in einer EDMX-Datei und die folgende Abfrage gibt keine Ergebnisse zu erhalten:Warum funktioniert diese XPath-Abfrage nicht in einer EDMX-Datei?

Arbeit
XmlDocument edmxFile = new XmlDocument(); 
edmxFile.Load(args[0]); 

XmlNamespaceManager nsMan = new XmlNamespaceManager(edmxFile.NameTable); 
nsMan.AddNamespace("edmx", "http://schemas.microsoft.com/ado/2007/06/edmx"); 
nsMan.AddNamespace("s", "http://schemas.microsoft.com/ado/2007/06/edm/ssdl"); 
nsMan.AddNamespace("e", "http://schemas.microsoft.com/ado/2007/06/edm"); 
nsMan.AddNamespace("u", "urn:schemas-microsoft-com:windows:storage:mapping:SC"); 


XmlNodeList entityTypes = edmxFile.DocumentElement.SelectNodes("//EntityType", nsMan); //Returns 0 nodes 
XmlNodeList entityTypes = edmxFile.SelectNodes("//EntityType"); //Returns 0 nodes also 

Warum tut XPath hier?

Antwort

1

Es ist eine Weile her, aber ich denke, Sie brauchen "//s:EntityType" in Ihren Aufrufen zu diesen Methoden.

+0

Das hat nicht den Trick gemacht, und auch keiner der anderen Namespaces –

+0

Habe es einfach selbst ausprobiert, und es funktionierte - die einzige Änderung, die ich machen musste, war meine ssdl (s :) Namespace URI, die 'http ist : // schemas.microsoft.com/ado/2006/04/edm/ssdl'. Ich nehme an, Sie verwenden EF4, weshalb Sie eine andere URI haben? –

+0

Ich benutze VS2008 SP1, nach der Verwendung des Schemas, das Sie getan haben, hat es funktioniert, danke! –

Verwandte Themen