robím App ktorá používa DB (MS SQL Server 2008 R2). Na prístup k DB používam vlastnú triedu, ktorá dedí od triedy DataContext.
Jednu inštanciu tohto objektu používa celá App. Problémom je, že databázové pripojenie je stále otvorené.
Odvtedy, ako prvýkrát pristúpim k DB až pokiaľ nieje App ukončená. To, že je spojenie aktívne vidím cez Microsoft SQL Server Management Studio na databáze, ktorú táto App využíva - obr. v prílohe.
Nerozumiem tomu, nakoľko DataContext by mal otvárať a uzavierať pripojenie automaticky pri každom dotaze na DB. Ani použitie using neuzavrie spojenie.
Kód: Vybrať všetko
public class InfoKalDatabase : DataContext
{
public Table<User> Users;
public Table<Permission> Permissions;
public Table<Customer> Customers;
public Table<Container> Containers;
private static InfoKalDatabase _instance;
public InfoKalDatabase(String connectionString)
: base(connectionString)
{
}
public static InfoKalDatabase Instance
{
get
{
if (_instance == null)
{
SqlConnectionStringBuilder conf = new SqlConnectionStringBuilder();
conf.DataSource = "server";
conf.InitialCatalog = "database";
conf.UserID = "user";
conf.Password = "pass";
_instance = new InfoKalDatabase(conf.ConnectionString);
}
return _instance;
}
}
}
using (InfoKalDatabase db = InfoKalDatabase.Instance)
{
.....
}
Dík