gpt4 book ai didi

entity-framework - Entity Framework 数据库连接错误

转载 作者:行者123 更新时间:2023-12-04 07:23:11 25 4
gpt4 key购买 nike

我是第一次使用 Entity Framework (代码优先)。我使用以下代码创建了一个上下文类。

public class ContactContext : DbContext
{
public ContactContext()
: base("DBConnectionString")
{
Database.SetInitializer<ContactContext>(new DropCreateDatabaseIfModelChanges<ContactContext>());
}

public DbSet<Contact> Contacts { get; set; }

}

Web.config 文件:

<add name="ContactMgrDBContext" connectionString="Data Source=(Local);Initial Catalog=ContactsDB;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/>

Controller 类:

public class ContactController : Controller
{

ContactContext db = new ContactContext();

// //获取:/联系人/

    public JsonResult ContactList(int? selectedContact)
{

IQueryable<Contact> contacts = db.Contacts;

//contacts.ToList()

var contactsJson = JsonConvert.SerializeObject(contacts.ToList());

return Json(contactsJson, JsonRequestBehavior.AllowGet);

}

当我在 Debug模式下运行应用程序时,我在这条语句中得到以下异常。

var contactsJson = JsonConvert.SerializeObject(contacts.ToList());

EntityFramework.dll 中出现“System.Data.ProviderIncompatibleException”类型的异常,但未在用户代码中处理附加信息:从数据库获取提供者信息时出错。这可能是由 Entity Framework 使用不正确的连接字符串引起的。检查内部异常以获取详细信息并确保连接字符串正确。

联系类代码:

public class Contact
{
[Key]
public int ContactId { get; set; }
[Required, MaxLength(100)]
public string FirstName { get; set; }
[Required, MaxLength(100)]
public string LastName { get; set; }
public string EMail { get; set; }
public string Phone { get; set; }
public string BusinessName { get; set; }

}

最佳答案

您的 web.config 声明了一个名为“ContactMgrDBContext”的连接字符串,而您的上下文类引用了一个名为“DBConnectionString”的连接字符串。

尝试更新您的上下文类构造函数以使用正确的名称和语法:

public ContactContext()
: base("name=ContactMgrDBContext")
{
Database.SetInitializer<ContactContext>(new DropCreateDatabaseIfModelChanges<ContactContext>());
}

您似乎也在尝试使用 localdb 来处理您的数据库。我尝试使用您的 Data Source=(Local) 名称运行,但遇到了类似的错误。您可能想尝试更新它以使用 Data Source=(localdb)\v11.0,如下所示:

<add name="ContactMgrDBContext" connectionString="Data Source=(localdb)\v11.0;Initial Catalog=ContactsDB;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/>

关于entity-framework - Entity Framework 数据库连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30154283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com