【发布时间】:2015-05-10 17:14:22
【问题描述】:
我是第一次使用实体框架(代码优先)。我使用以下代码创建了一个上下文类。
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"/>
控制器类:
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);
}
当我在调试模式下运行应用程序时,我在此语句中得到以下异常。
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; }
}
【问题讨论】:
-
我正在关闭这个问题,因为数据库连接的原始问题已经解决。我现在面临将数据(json 格式)渲染到 jqGrid 的问题。我将为此创建一个单独的问题。谢谢大家的帮助!
-
这是我的其他问题的链接,该问题与 jqGrid 未呈现数据有关。即使操作方法以 JSON 格式返回数据。 stackoverflow.com/q/30159205/1490250
标签: entity-framework asp.net-mvc-4