закрыть базу данных соединений - PullRequest
0 голосов
/ 04 августа 2011
DataClassesDataContext dc = new DataClassesDataContext();

private string GetPropertyCompany()
{
  var res=from b in dc.Tbl1 select b;
  string a;
  foreach(var item in res)
      a+=item.name;
  //    dc.Connection.Close();

  return a;
}

Этот код требует тесного соединения;

мне всегда следует закрывать соединение;

без dc.Connection.Close(); отлично работает !!!!

Ответы [ 2 ]

1 голос
/ 04 августа 2011

взгляните на Нужно ли вручную закрывать соединение SQL, если я использую Linq? в частности

LINQ to SQL будет открывать и закрывать соединения, когда потребуется

Хотя, если этот код принадлежит к своему классу, вы можете добавить деструктор, который удаляет контекст данных, хотя это зависит от вас

0 голосов
/ 04 августа 2011

Я сомневаюсь, что это фактический код, но, тем не менее, вот почему у вас возникла проблема.

var res = from b in dc.Tbl1 select b; 

на самом деле не выполняется (то есть база данных не работает) до тех пор, пока вы "access "res переменная (т.е. 'foreach' поверх нее), что, очевидно, происходит в другом месте.Когда вы делаете доступ res, фактический DataContext уже закрыт, следовательно, ошибка.

...