Tengo un proyecto de 3 niveles.EF4 y cadena de conexión
1) Project.Data (archivo EDMX)
2) Project.Model()
3) Project.Console (Consola de aplicación POCO)
He añadido la cadena de conexión en el Project.Console
.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="ProjectEntities" connectionString="metadata=res://*/Project.csdl|res://*/Project.ssdl|res://*/Project.msl;provider=System.Data.SqlClient;provider connection string="Data Source=PC\SQLEXPRESS;Initial Catalog=Project;Integrated Security=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
El Project.Model
se construye usando la plantilla EntityObject
T4 en VS2010. Genera una clase ObjectContext
, con este constructor:
public ProjectEntities() : base("name=ProjectEntities", "ProjectEntities")
{
this.ContextOptions.LazyLoadingEnabled = true;
OnContextCreated();
}
Sólo estoy tratando de crear una instancia del objeto context
, en el Project.Console
:
namespace Project.Console
{
class Program
{
static void Main(string[] args)
{
ProjectEntities pe = new ProjectEntities();
}
}
}
Sin embargo, estoy consiguiendo un error de MetadataException was unhandled
en el constructor. Estableciendo Unable to load the specified metadata resource.
He hecho una tonelada de investigación (Google), y encontré que parece ser un problema de vinculación en esos recursos. Parece que no puedo encontrar una resolución.
Cualquier ayuda es apreciada.
leí el artículo que Craig sugirió, pero estoy todavía incierto donde tengo que colocar el archivo DLL de referencia ...? Tengo un escenario como el tuyo. Estoy asumiendo en Project.Model's app.config? Tengo mi contexto y pocos puntos separados del archivo edm en un proyecto separado como en tu caso, Project.Model. –
En mi proyecto de consola, necesitaba una referencia a mis datos (EDMX) y al proyecto modelo. También requería una referencia a System.Data.Entity. –