สตริงการเชื่อมต่อ "MyConnection" ในไฟล์คอนฟิกูเรชันของแอปพลิเคชันไม่มีแอตทริบิวต์ ProviderName ที่ต้องการ "


85

ผมใช้Entity Framework Code First,

สตริงการเชื่อมต่อของฉันอยู่ในไฟล์คอนฟิกูเรชัน:

<connectionStrings>
    <clear/>
    <add name="ApplicationServices" connectionString="Data Source=PC-X;Initial Catalog=MYdb;Integrated Security=True"/>
  </connectionStrings>

เมื่อฉันพยายามเข้าถึงข้อมูล (สิ่งที่ควรสร้างฐานข้อมูล) เกิดข้อผิดพลาดต่อไปนี้:

สตริงการเชื่อมต่อ "ApplicationServices" ในไฟล์คอนฟิกูเรชันของแอปพลิเคชันไม่มีแอตทริบิวต์ ProviderName ที่ต้องการ "

ฉันขาดอะไรไป?

คำตอบ:


183

คุณไม่มีโค้ดต่อไปนี้หลังconnectionStringแอตทริบิวต์ (สมมติว่าคุณกำลังใช้ SQL):

providerName="System.Data.SqlClient"


18
หากใช้ Entity Framework:providerName="System.Data.EntityClient"
Dr1Ku

3
ฉันพยายามเพิ่มสิ่งนี้ลงในสตริงการเชื่อมต่อ แต่เป็นแอตทริบิวต์ใหม่สำหรับองค์ประกอบ <add /> แอ็ตทริบิวต์พี่น้องกับแอ็ตทริบิวต์ connectionString
Sean B

@ IronMan84 ฉันได้รับข้อผิดพลาดประเภท Cast หลังจากใช้ SqlClient และ EntityClient ทำงาน
Zia Ul Rehman Mughal

15

บางครั้งในอนาคต รหัสที่สมบูรณ์

<add name="YouContext" connectionString="Integrated Security=True;Persist Security Info=False;Initial Catalog=YourDatabaseName;Data Source=YourPCName;" providerName="System.Data.SqlClient"/>

1

ลงไปใน web.config ของคุณจนกว่าจะถึงprovidersแท็ก ตัวอย่างเช่นนี่คือคำสั่งผู้ให้บริการของฉัน:

<providers><provider invariantName="System.Data.SqlClient" ... /></providers>

คุณควรเพิ่มสิ่งนี้System.Data.SqlClientเป็นชื่อผู้ให้บริการในสตริงการเชื่อมต่อของคุณดังนั้นสตริงการเชื่อมต่อของคุณควรมีลักษณะดังนี้:

  <connectionStrings>
 <add name="ApplicationServices" providerName="System.Data.SqlClient" connectionString="Data Source=PC-X;Initial Catalog=MYdb;Integrated Security=True"/>
  </connectionStrings>


+1 สำหรับการกล่าวถึงสิ่งนี้อยู่ใน web.config เนื่องจากมีผู้ใช้ผลิตภัณฑ์ที่มีไฟล์
กำหนดค่าต่างๆมากมาย

0

ในกรณีของฉันปัญหาเกิดจากเป้าหมายโครงการ StartUp ที่ไม่ถูกต้อง ในคอนโซล PM โครงการแอสเซมบลีการย้ายเป้าหมายถูกต้อง

ฉันมีโซลูชันหลายโครงการและเป้าหมายอยู่ในโครงการบริการเว็บบางโครงการ

ดังนั้นฉันจึงเปลี่ยน StartUp เป็นโปรเจ็กต์ WebSite หลักและการย้ายข้อมูลได้รับการปฏิบัติโดยไม่มีข้อผิดพลาด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.