J'ai implémenté la solution de contournement suivante jusqu'à ce que mono intègre les artefacts de métadonnées Entity Framework
- Étape 1 :Mettez à jour la propriété de traitement des artefacts de métadonnées de votre modèle EntityFramework à partir de " Intégrer dans l'assemblage de sortie" à "Copier dans le répertoire de sortie"
Cela copie les fichiers d'artefact de métadonnées dans le dossier bin du projet contenant le .edmx(Project1)
-
Étape 2 - Ajoutez les événements de post-construction suivants au projet de référence (Project2) pour copier les fichiers d'artefact de métadonnées dans son bac. Vous pouvez les ajouter à la fin du fichier de projet .csproj. Remplacer Projet1 avec le nom de votre projet.
<PropertyGroup> <PostBuildEvent Condition=" '$(OS)' != 'Unix' ">copy /Y "$(ProjectDir)..\Project1\bin\Debug\Models\*" "$(ProjectDir)\bin\Debug\" </PostBuildEvent> <PostBuildEvent Condition=" '$(OS)' == 'Unix' ">cp -a "$(ProjectDir)../Project1/bin/Debug/Models/." "$(ProjectDir)bin/Debug/" </PostBuildEvent> </PropertyGroup>
-
Étape 3 - Mettez à jour votre chaîne de connexion
de
<add name="EntityframeworkTestEntities" connectionString="metadata=res://*/EntityFrameworkTestModel.csdl|res://*/EntityFrameworkTestModel.ssdl|res://*/EntityFrameworkTestModel.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=EntityframeworkTest;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
à
<add name="EntityframeworkTestEntities" connectionString="metadata=EntityFrameworkTestModel.csdl|EntityFrameworkTestModel.ssdl|EntityFrameworkTestModel.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=EntityframeworkTest;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />