2009-07-24 21 views
0

私はEDMXファイルにEntityTypesのリストを取得しようとしている、と次のクエリは結果を返しません:こここの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 

なぜdoesntのXPathの仕事を?

答えて

1

これはしばらくお待ちしていますが、私はこれらのメソッドへの呼び出しで"//s:EntityType"が必要だと思います。

+0

これはやっていませんでした。他の名前空間のいずれもしていませんでした。 –

+0

自分自身で試してみました。それはうまくいきました。唯一の変更は私のssdl(s :)名前空間URIです。これは 'http :// schemas.microsoft.com/ado/2006/04/edm/ssdl'。私はEF4を使用していると仮定しています。なぜあなたは異なるURIを持っているのですか? –

+0

私はあなたがしたスキーマを使用した後、VS2008 SP1を使用しています、それは感謝しました! –

関連する問題