ฉันจะส่งสตริงการเชื่อมต่อไปยัง DbContext รหัสแรกของกรอบเอนทิตีได้อย่างไร การสร้างฐานข้อมูลของฉันทำงานได้อย่างถูกต้องเมื่อทั้ง DbContext และสตริงการเชื่อมต่อใน web.config อยู่ในโปรเจ็กต์เดียวกันและตั้งชื่อในลักษณะเดียวกัน แต่ตอนนี้ฉันต้องการย้าย DbContext ไปยังโปรเจ็กต์อื่นดังนั้นฉันจึงทดสอบส่งสตริงการเชื่อมต่อไปยังมันดังนี้:
โมเดลและบริบท
public class Dinner
{
public int DinnerId { get; set; }
public string Title { get; set; }
}
public class NerdDinners : DbContext
{
public NerdDinners(string connString)
: base(connString)
{
}
public DbSet<Dinner> Dinners { get; set; }
}
หนังบู๊
public ActionResult Index()
{
var db = new NerdDinners(ConfigurationManager.ConnectionStrings["NerdDinnerDb"].ConnectionString);
var dinners = (from d in db.Dinners
select d).ToList();
return View(dinners);
}
Web.Config
<connectionStrings>
<add name="NerdDinnerDb" connectionString="Data Source=|DataDirectory|NerdDinners.sdf" providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
ถ้าฉันตั้งค่าเบรกพอยต์ในการดำเนินการวิเคราะห์db
สตริงการเชื่อมต่อจะอยู่ที่นั่น แต่ไม่ได้สร้างหรือค้นหาฐานข้อมูลหรืออะไรเลย
เกิดข้อผิดพลาดเกี่ยวกับเครือข่ายหรือเฉพาะอินสแตนซ์ขณะสร้างการเชื่อมต่อกับ SQL Server ไม่พบเซิร์ฟเวอร์หรือไม่สามารถเข้าถึงได้ ตรวจสอบว่าชื่ออินสแตนซ์ถูกต้องและมีการกำหนดค่า SQL Server ให้อนุญาตการเชื่อมต่อระยะไกล (ผู้ให้บริการ: ผู้ให้บริการท่อชื่อข้อผิดพลาด: 40 - ไม่สามารถเปิดการเชื่อมต่อกับ SQL Server)