Nabend...
irgendwie weiß ich gerade nicht mehr weiter ?( ?( ?(
Hier mein Code
public class DataProvider
{
private static FbConnection _connection = null;
protected static FbConnection Connection
{
get
{
if (_connection == null)
{
if (File.Exists(DatabaseFilePath) == false)
{
// create database
FbConnection.CreateDatabase(App.ConnectionString);
var command = NewCommand();
command.CommandText = CREATE_TABLE_BELEGE;
command.ExecuteNonQuery();
command.CommandText = CREATE_GENERATOR_BELEGE;
command.ExecuteNonQuery();
command.CommandText = CREATE_TRIGGER_BELEGE;
command.ExecuteNonQuery();
return _connection;
}
_connection = new FbConnection(App.ConnectionString);
_connection.Open();
}
return _connection;
}
}
}
Es geht um die Variable "_connection".
Wenn ich jetzt im Debug-Modus schaue ist _connection NULL . Sobald ich jetzt auf die die Eigenschaft Connection zugreife und ein Debug-Point bei "if (_connection == null)" setze, ist aufeinmal die Variable _connection nicht mehr NULL, sondern initialisiert.
Kann mir jemand hier weiterhelfen? Ich kann mir das absolut nicht erklären!.
Mfg Schaffi
Hallo,
Bist Du sicher dass Du den ersten Aufruf debuggst?
Es kann auch sein, dass der Debugger den Getter bereits aufruft, um den Wert der Property anzuzeigen. Dadurch kann sie dann initialisiert werden, bevor Dein Breakpoint erreicht wird.
Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
Vielleicht mehrere Threads?
Connections zu teilen ist nicht so eine gute Idee.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hast Du allenfalls im Watch-Fenster auch DataProvider.Connection drin ?
Falls ja, dann holt VS den Wert (ohne im Defucker anzuhalten)
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
Ich habs, lag am protected. Wenn ich ein public statt protected setze funktioniert alles wie es sein soll.
Hallo Schaffi,
die eigentliche Ursache muss aber wo anders liegen und diese sollte gefunden und behoben werden. Hast du die Hinweise in diesem Thema alle befolgt bzw. kannst du diese ausschließen?
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"