studio - Entity Framework UnintentionalCodeFirstException
migrations asp net mvc (2)
Tengo un proyecto de MVC 4 configurado y generé todas las clases de modelo usando Entity Framework. Luego agregué una clase y la llamé igual a la clase "MyProjectEntities" y la hice parcial para poder agregar métodos personalizados en esa clase. Agregué muchos métodos para consultar la base de datos en esta clase y se compila muy bien. Cuando llamo a estos métodos, obtengo UnintentionalCodeFirstException. No estoy seguro de qué hice mal?
Debe proporcionar la cadena de conexión correcta. No solo las cadenas de tipo "Fuente de datos =" normales.
Tendrás una cadena de conexión que comienza con "metadata =" en tu archivo de configuración, usa esa.
También puede transformar la cadena de conexión simple en una cadena de conexión de primera base de datos:
public static string BuildEntityConnectionStringFromAppSettings(string nameOfConnectionString)
{
var shortConnectionString = GetConnectionStringByName(nameOfConnectionString);
// Specify the provider name, server and database.
string providerName = "System.Data.SqlClient";
// Initialize the connection string builder for the
// underlying provider taking the short connection string.
SqlConnectionStringBuilder sqlBuilder =
new SqlConnectionStringBuilder(shortConnectionString);
// Set the properties for the data source.
sqlBuilder.IntegratedSecurity = false;
// Build the SqlConnection connection string.
string providerString = sqlBuilder.ToString();
// Initialize the EntityConnectionStringBuilder.
EntityConnectionStringBuilder entityBuilder =
new EntityConnectionStringBuilder();
//Set the provider name.
entityBuilder.Provider = providerName;
// Set the provider-specific connection string.
entityBuilder.ProviderConnectionString = providerString;
// Set the Metadata location.
entityBuilder.Metadata = String.Format("res://*/Application.{0}.Data.Model.{0}Model.csdl|res://*/Application.{0}.Data.Model.{0}Model.ssdl|res://*/Application.{0}.Data.Model.{0}Model.msl", nameOfConnectionString);
return entityBuilder.ToString();
}
Antecedentes: en mi proyecto había muchas cadenas de conexión y queríamos mantenerlas simples y comparables.