Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Entity Framework-Metadatenartefakt nicht eingebettet, wenn xbuild und mono verwendet werden

Ich habe die folgende Problemumgehung implementiert, bis Mono die Entity Framework-Metadatenartefakte einbettet

  1. Schritt 1 – Aktualisieren Sie die Metadatenartefaktverarbeitungseigenschaft Ihres EntityFramework-Modells von "In Ausgabeassembly einbetten" zu "In Ausgabeverzeichnis kopieren"

Dadurch werden die Metadatenartefaktdateien in den bin-Ordner des Projekts kopiert, das die .edmx(Project1)

enthält
  1. Schritt 2:Fügen Sie dem verweisenden Projekt (Project2) die folgenden Post-Build-Ereignisse hinzu, um die Metadatenartefaktdateien in seinen Bin zu kopieren. Sie können sie am Ende der CSPROJ-Projektdatei hinzufügen. Ersetzen Sie Projekt1 mit dem Namen Ihres Projekts.

    <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>
    
  2. Schritt 3 – Aktualisieren Sie Ihre Verbindungszeichenfolge

    von

    <add name="EntityframeworkTestEntities" connectionString="metadata=res://*/EntityFrameworkTestModel.csdl|res://*/EntityFrameworkTestModel.ssdl|res://*/EntityFrameworkTestModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=EntityframeworkTest;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
    

    zu

    <add name="EntityframeworkTestEntities" connectionString="metadata=EntityFrameworkTestModel.csdl|EntityFrameworkTestModel.ssdl|EntityFrameworkTestModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=EntityframeworkTest;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />