私はC#linqをSQLアプリケーションに使用しており、アプリケーションは24 * 7のサーバーで動作しています。今私は問題のデータベース接続に直面しているので、アクティブな接続が200以上に達するようにクローズしていません。私はどこでもデータベースを直接扱っています。データベース接続が正しく終了していません
しかし、これは私の問題を解決するものではありません。確認し、私がこれのためにできることを教えてください。
プロバイダは常に自分のデータベースを無効にします。
using (DataClassesDataContext DbContext = new DataClassesDataContext())
{
return DbContext.tblApiLinks.FirstOrDefault(U => U.ProviderName == ProviderName);
}
using (DataClassesDataContext DbContext = new DataClassesDataContext())
{
tblApiLink Apilink = new tblApiLink();
Apilink.ApiUrl = Url;
Apilink.ApiKey = Key;
Apilink.ProviderName = Provider;
DbContext.tblApiLinks.InsertOnSubmit(Apilink);
DbContext.SubmitChanges();
}
新編集
ケース1は、テーブルを返すこれらのコードを確認してください。これは接続を閉じるために効果がありますか?
public tblApiLink getData()
{
using (DataClassesDataContext DbContext = new DataClassesDataContext())
{
return DbContext.tblApiLinks.FirstOrDefault(U => U.ProviderName == ProviderName);
}
}
tblApiLink api = getData();
ケース2.私がこのように使用した場合、tblApiLinks lst = dbContext.tblApiLinks; これは接続を閉じることはないと思うし、それらは常にアクティブになります。
ケース3.長期間アクティブで、使用されていないすべてのスリープ接続を閉じる方法はありますか?
DBのクエリ方法のサンプルコードを追加してください。 –
'"確認して教えてください... "' - 何を*正確にチェックしますか? – David
@PankajMishra:表示されているコードに構造的に間違っているものはありません。あなたが観察している問題は、このコードで提示されているものほど単純ではないかもしれません。 – David