juin
2007
Lorsqu’on rajoute un ADO .NET Entity Data Model dans un projet, on obtient 4 fichiers :
un .csdl qui représente vos entities, un fichier .cs (sous le fichier .csdl), un fichier .msl qui correspond au mapping entre la base et les entities et un fichier .ssdl qui représente la base. Les 3 fichiers (autre que le cs) sont fichiers de type xml. Dans le premier et le dernier fichier, le root node est Schema et a un attribut namespace. Dans bien des cas, on a une erreur car le namespace est considéré trop long !
Erreur à la compilation : « Custom tool error: The namespace name C21CD6D82560D80FD60C66B21A537A5A4_RATOR_MY_DOCUMENTS_VISUAL_STUDIO_CODENAME_ORCAS_PROJECTS_LINQTOENTITIES_LINQTOENTITIES_DEMO.MDFModel is too long (134). The max length for a namespace name is 80. » Cette erreur provient du .csdl. Dans ces cas là un petit replace all suffit pour compiler. Cependant à l’exécution, une erreur se produit : « Schema specified is not valid. Errors:
The namespace name 21CD6D82560D80FD60C66B21A537A5A4_RATOR\MY DOCUMENTS\VISUAL STUDIO CODENAME ORCAS\PROJECTS\LINQTOENTITIES\LINQTOENTITIES\DEMO.MDF is too long (128). The max length for a namespace name is 80., SchemaName: file:///C:/Documents and Settings/Administrator/My Documents/Visual Studio Codename Orcas/Projects/LinqToEntities/ConsoleApplication1/bin/Debug/Model1.ssdl, LineNumber: 2 »
Ce coup-ci, c’est le namespace du .ssdl. Un petit replace all et c’est presque bon.
Il faut encore supprimer les 3 fichiers csdl, msl et ssdl du répertoire bin et là c’est vraiment bon.