sql >> Base de Datos >  >> RDS >> Mysql

El artefacto de metadatos de Entity Framework no está incrustado cuando se usa xbuild y mono

He implementado la siguiente solución alternativa hasta que mono incrusta los artefactos de metadatos de Entity Framework

  1. Paso 1:actualice la propiedad de procesamiento de artefactos de metadatos de su modelo EntityFramework desde "Incrustar en ensamblaje de salida" a "Copiar al directorio de salida"

Esto copia los archivos de artefactos de metadatos a la carpeta bin del proyecto que contiene el .edmx(Project1)

  1. Paso 2:agregue los siguientes eventos posteriores a la compilación al proyecto de referencia (Proyecto 2) para copiar los archivos de artefactos de metadatos en su contenedor. Puede agregarlos al final del archivo de proyecto .csproj. Reemplazar Proyecto1 con el nombre de tu proyecto.

    <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. Paso 3:actualice su cadena de conexión

    de

    <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" />
    

    a

    <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" />