2009-07-24 3 views
0

Я пытаюсь получить список EntityTypes в файле EDMX, и следующий запрос не возвращает результаты:Почему этот запрос XPath не работает в файле .edmx?

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 

Почему оленья кожа работа XPath здесь?

ответ

1

Прошло некоторое время, но я думаю, что вам нужно "//s:EntityType" в ваших вызовах этих методов.

+0

Это не трюк, и ни одно из других пространств имен –

+0

Просто попробовал это сам, и это сработало - единственная модификация, которую я должен был сделать, это мой ssdl (s :) namespace URI, который является 'http : // schemas.microsoft.com/лукаво/2006/04/EDM/ssdl'. Я предполагаю, что вы используете EF4, поэтому у вас другой URI? –

+0

Я использую VS2008 SP1, после использования схемы, которую вы сделали, это сработало, спасибо! –

Смежные вопросы