Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Membetulkan Ralat 'Pembekal Dasar Gagal pada Terbuka' dalam Rangka Kerja Entiti Apabila Menyambung ke MSSQL?

Bagaimana untuk Membetulkan Ralat 'Pembekal Dasar Gagal pada Terbuka' dalam Rangka Kerja Entiti Apabila Menyambung ke MSSQL?

Barbara Streisand
Barbara Streisandasal
2025-01-24 08:16:38888semak imbas

How to Fix the

Menyelesaikan masalah Ralat "Pembekal Dasar Gagal Buka" dalam Rangka Kerja Entiti dan MSSQL

Ralat "Pembekal asas gagal pada Terbuka" yang ditakuti sering timbul apabila Rangka Kerja Entiti cuba menyambung ke pangkalan data MSSQL. Punca punca hampir selalu rentetan sambungan yang dikonfigurasikan dengan tidak betul.

Untuk sambungan ke pangkalan data SQL tanpa fail .mdf, pastikan rentetan sambungan anda mematuhi struktur ini:

<code class="language-csharp"><add connectionString="metadata=res://*/conString.csdl|res://*/conString.ssdl|res://*/conString.msl;provider=System.Data.SqlClient;provider connection string='Data Source=.\SQL2008;Initial Catalog=NData;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True'" name="conString" providerName="System.Data.EntityClient" /></code>

Parameter Rentetan Sambungan Penting:

  • Sumber Data: Nama tika SQL Server anda (mis., .SQL2008 untuk tika tempatan). Semak semula ini; kesilapan kesilapan di sini adalah punca biasa.
  • Katalog Permulaan: Nama pangkalan data yang anda sasarkan. Sekali lagi, sahkan ketepatan.
  • Keselamatan Bersepadu: Menetapkan ini kepada True menggunakan Pengesahan Windows.
  • Tamat Masa Sambung: Menentukan tempoh maksimum percubaan sambungan (dalam saat). Tingkatkan ini jika pelayan anda lambat bertindak balas.
  • Instance Pengguna: Menggunakan True mencipta contoh pangkalan data khusus pengguna.
  • MultipleActiveResultSets: True mendayakan berbilang set hasil dalam satu sambungan.

Isu Berkaitan Transaksi:

Satu lagi potensi sumber ralat ini melibatkan transaksi Rangka Kerja Entiti. Setiap operasi pangkalan data dalam transaksi secara automatik membuka dan menutup sambungan. Ini boleh menimbulkan masalah dengan MSDTC (Microsoft Distributed Transaction Coordinator).

Penyelesaian: Pengurusan Sambungan Manual

Untuk memintas isu MSDTC, buka sambungan secara eksplisit sebelum menggunakannya:

<code class="language-csharp">using (DatabaseEntities context = new DatabaseEntities())
{
    context.Connection.Open();
    // Your database operations here...
}</code>

Dengan menyemak dengan teliti rentetan sambungan anda dan menggunakan pengurusan sambungan manual apabila perlu, anda boleh menyelesaikan ralat "Penyedia Dasar Gagal pada Buka" dengan berkesan.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Pembekal Dasar Gagal pada Terbuka' dalam Rangka Kerja Entiti Apabila Menyambung ke MSSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn