Jeg har implementeret følgende løsning, indtil mono integrerer Entity Framework-metadataartefakter
- Trin 1 - Opdater din EntityFramework Models Metadata Artifact Processing-egenskab fra "Indlejring i outputsamling" til "Kopier til Output Directory"
Dette kopierer metadataartefaktfilerne til bin-mappen i projektet, der indeholder .edmx(Project1)
-
Trin 2 - Tilføj følgende post build-begivenheder til referenceprojektet (Project2) for at kopiere metadataartefaktfilerne til dets bin. Du kan tilføje dem til slutningen af .csproj-projektfilen. Erstat Projekt1 med navnet på dit projekt.
<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>
-
Trin 3 - Opdater din forbindelsesstreng
fra
<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" />
til
<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" />