2012-09-04 10 views
6

Tengo EF 5.0 código primero VS 2012 proyecto y todos los comandos de menú de Entity Framework (Ver Entity Data Model DDL SQL) producen "Excepción ha sido lanzada por el objetivo de una invocación "emergente". Creo que lo que también ha cambiado es que las EF Power Tools Beta 1 (o VS 2010, no estoy seguro) se usan para mostrar los mensajes de EF Power Tools en la ventana de salida. Ahora todo lo que obtengo es la ventana emergente ... ¿Es este problema VS o Power Tools?EF Power Tools Beta 2: el objetivo de una invocación ha lanzado una excepción

+1

tengo el mismo problema ¿averiguó por qué o cómo resolverlo? – Eatdoku

+0

Creo que este es el problema de EF Power Tools. El mayor problema aquí es que VS no da suficientes detalles para descubrir qué es lo que está mal ... – Pawel

+0

Ese es exactamente mi punto: no hay nada que pueda ayudar a reducirlo. Puede ser a), b) c) .. No quiero pasar por todas las combinaciones posibles ... la beta anterior al menos muestra el progreso y los mensajes, pero la nueva no (o quizás no lo sé) dónde mirar ..) –

Respuesta

0

Quizás Visual Studio tenga problemas para averiguar qué cadena de conexión usar para su DBContext, cuando elige los comandos del menú de Entity Framework.

En mi caso, pude resolver esto verificando que tenía una cadena de conexión "predeterminada" para mi dbContext. De modo que, cuando haga clic con el botón derecho en el contexto db y seleccione Entidad marco, tendrá una conexión con el DB.

En otras palabras, he modificado mi DBContext para seleccionar la cadena de conexión desde un parámetro de línea de comando a mi aplicación. Entonces, normalmente, mi contexto db no tenía un valor "predeterminado".

public class MyDbContext : DbContext 
{ 
    public static string ConnectionName; 

    public DnnDbContext() 
     : base("Name=" + ConnectionName) {  
    } 

Como puede ver, no tenía ConnectionString por defecto.

me cambió a:

public static string ConnectionName = "DefaultConnNameInAppConfig"; 
4

este es mi trabajo en torno a:

comentario a cabo el constructor, y dejar la MyDbContext estática como es ->

public class MyDbContext: DbContext 
{ 
    public static string ConnectionName = "Name = SMS_ADvTECHContext"; 
    static MyDbContext() 
    { 
     Database.SetInitializer<SMS_ADvTECHContext>(null); 
    } 

/* public SMS_MyDbContext() 
     : base(ConnectionName) 
    { 
    }*/ 
} 

Entonces, si usted haga clic con el botón secundario en la clase de contexto -> Enityframework -> Ver el modelo de datos de la entidad (solo lectura) ¡genere la vista!

0

Me encontré con este error cuando no tenía configurada la fábrica de conexión predeterminada correcta en el App.config dentro del proyecto que incluía mi clase DbContext. Lo actualicé para usar la fábrica correcta y este error desapareció. En mi caso me puse a utilizar el LocalDbConnectionFactory:

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
      <parameter value="v11.0" /> 
     </parameters> 
    </defaultConnectionFactory> 
</entityFramework> 
0

en corrieron en este error y que era un problema aún más simple ... el proyecto que contenía mi contexto no era el proyecto de inicio. Una vez que configuré el proyecto como el Startup Project, comenzó a funcionar.

0

Me encontré con esto cuando tenía varias cadenas de conexión con el mismo nombre configurado en mi web.config.

Cuestiones relacionadas