Ich versuche, eine bestehende Anwendung ohne eine app.config zu machen (es ist aufgrund einer sehr spezifischen Umgebung erforderlich). Das Problem ist, dass es stark auf EntityFramework 6 angewiesen ist, um mit einem SQL-Server zu arbeiten.EntityFramework 6 Code-basierte Konfiguration der Verbindungszeichenfolge für Datenbank-zuerst
Ich versuche eine code-based configuration zu verwenden, aber ich kann nicht herausfinden, wie man eine korrekte Verbindungszeichenfolge durch meine Konfiguration zur Verfügung stellt.
ich eine Konfigurationsklasse gemacht haben:
public class MyConfiguration : DbConfiguration
{
public MyConfiguration()
{
SetDefaultConnectionFactory(new MyConnectionFactory());
SetProviderServices("System.Data.SqlClient", System.Data.Entity.SqlServer.SqlProviderServices.Instance);
}
}
Dann ist es meiner DbContext (generiert durch EF automaticaly von bd) Bereitstellen:
[DbConfigurationType(typeof(MyConfiguration))]
public partial class TestModelEntities
{
}
Mit einem benutzerdefinierten Verbindungsfactory:
public class MyConnectionFactory : IDbConnectionFactory
{
public DbConnection CreateConnection(string nameOrConnectionString)
{
var newConnStringBuilder = new SqlConnectionStringBuilder
{
UserID = "user",
Password = "pass",
InitialCatalog = "databaseName",
DataSource = "serverName"
};
var entityConnectionBuilder = new EntityConnectionStringBuilder
{
Provider = "System.Data.SqlClient",
ProviderConnectionString = newConnStringBuilder.ToString(),
Metadata = @"res://*/TestModel.csdl|
res://*/TestModel.ssdl|
res://*/TestModel.msl"
};
var newDbConnect = new EntityConnection(entityConnectionBuilder.ToString());
return newDbConnect;
}
}
Jedoch. Wenn ich versuche, es zu testen, bekomme ich immer noch eine . Warum? Was vermisse ich?
Heh. Überraschend einfache Lösung. Vielen Dank! – user3223738