Ich habe ein MVC 4-Projekt eingerichtet und generiert alle Modellklassen mit Entity Framework. Dann fügte ich eine Klasse hinzu und benannte sie genauso wie die Klasse "MyProjectEntities" und machte sie partiell, so dass ich personalisierte Methoden in dieser Klasse hinzufügen kann. Ich habe eine Menge Methoden hinzugefügt, um die Datenbank in dieser Klasse abzufragen, und sie baut sich gut auf. Wenn ich diese Methoden zwar aufruft, bekomme ich UnintentionalCodeFirstException. Ich bin mir nicht sicher, was ich falsch gemacht habe?Entity Framework UnintentionalCodeFirstException
30
A
Antwort
53
Sie müssen die korrekte Verbindungszeichenfolge angeben. Nicht nur die normalen Zeichenfolgen vom Typ "Data Source =".
Sie haben eine Verbindungszeichenfolge, die mit "metadata =" in Ihrer Konfigurationsdatei beginnt, verwenden Sie diese.
6
Sie können auch die einfache Verbindungszeichenfolge in eine Datenbank-Verbindungszeichenfolge ersten transformieren:
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();
}
Hintergrund: in meinem Projekt gibt es viele Verbindungszeichenfolgen waren und wir wollten, dass sie einfach und vergleichbar halten.
Verwandte Themen
- 1. Entity Framework Spalten-Entity-Korrelation?
- 2. Entity Framework Update Navigation Entity
- 3. Passing Connection String zu Entity Framework 6
- 4. Entity Framework 6 Verbindungszeichenfolge im Code
- 5. Entity Framework & Web Forms
- 6. Mocking Entity Framework Kontext
- 7. ADO.Net Entity Framework/Linq
- 8. Winforms Entity Framework
- 9. ADO.NET Entity Framework-Lernprogramme
- 10. Entity Framework: Aktualisierungszeitstempel festlegen
- 11. Entity Framework Null-Objekt
- 12. ADO.Net Entity Framework Objektnavigation?
- 13. Entity Framework Startzeit
- 14. Entity Framework Code Generierung
- 15. Entity Framework komplexe Beziehung
- 16. Entity Framework + SQLite-Bereitstellung
- 17. Entity Framework vs Alternativen
- 18. ADO.Net Entity Framework Beziehungen
- 19. Entity Framework - dynamic sql
- 20. Wie Entity Framework Caching
- 21. Entity Framework 'Massen' Finden
- 22. Entity Framework-Einfügeleistung
- 23. In Entity Framework Wie
- 24. Mapping in Entity Framework
- 25. Entity Framework - Skipwhile
- 26. Entity Framework Projektionsverhalten
- 27. ExecuteNonQuery() apply entity Framework
- 28. ReferentialConstraint im Entity Framework
- 29. aktualisiert Entity Framework Modell
- 30. Entity Framework Navigationseigenschaftsgenerierungsregeln