【问题标题】:Can't seem to load data from SQL Compact Edition to MVC 4 application似乎无法将数据从 SQL Compact Edition 加载到 MVC 4 应用程序
【发布时间】:2015-10-03 20:57:37
【问题描述】:

我正在关注本教程:http://www.w3schools.com/aspnet/mvc_models.asp,使用实体框架从SQL CE 获取数据。代码似乎不多。本教程是针对 MVC3 的,但我的项目是 MVC4,但我认为主要步骤应该相同。

我创建了一个SQL CE 数据库和一个包含所需列的表。 将数据添加到表中。 在 C# 方面我有

namespace MvcDemoApp.Models
{
    public class Employee
    {
        public int EmployeeID { get; set; }
        public string Name { get; set; }
        public string Gender { get; set; }
        public string City { get; set; }

    }

    public class EmployeeContext : DbContext
    {
        public DbSet<Employee> employees { get; set; }
    }
}

以及相应控制器中的代码

public ActionResult Index()
{
    var c = db.employees.ToList();
    return View(c);
}

该示例用于电影数据库,我将所有相关信息更改为员工。 我也添加了该教程中的连接字符串。 但是当我导航到上面控制器的索引页面时,有异常,请在底部查看异常详细信息。

看来我也给表列赋予了正确的含义(例如,类似于 Employee 类属性)

附言。这是我停止运行应用程序后数据库的外观

那么在 ASP MVC 4 应用程序中使用整个框架从 SQL Compact 加载数据的正确方法是什么?


这是我机器上的数据提供者列表,我使用找到的一些代码打印出来:

这是我的连接字符串

 <connectionStrings> <add name="EmployeeContext" connectionString="Data Source=c:\users\g\documents\visual studio 2012\Projects\TestMVCApp\TestMVCApp\App_Data\EmployeeDB.sdf" providerName="System.Data.SqlServerCe.4.0" /> </connectionStrings> 

更新:这是我现在得到的例外:

异常详细信息:System.ArgumentException:无法找到 请求的 .Net Framework 数据提供程序。可能没有安装。

来源错误:

第 17 行:第 18 行:EmployeeContext e = new 员工上下文();第19行:var list =e.Employeeslist.ToList();//这里有异常

【问题讨论】:

  • (我不同意链接的 W3Schools 教程的教学,因为它演示了同时使用单个 Model 类作为 DB Entity 对象和 ViewModel,这是不正确的)
  • @Dai:你能告诉我另一种方法是什么吗?也许还显示一个链接?我现在正在学习 ASP MVC。实际上,我看到的其他链接也遵循与上述类似的方法。顺便提一句。你有没有发现我在上面做错了什么?

标签: c# sql-server entity-framework asp.net-mvc-4


【解决方案1】:

您可能需要重置数据库。它将在您的 Configuration 类中启动脚本,从而在数据库中创建示例行。

ASP NET MVC 3 - How to reset database in code first, with two tables and Database.Setinitializer?

矮个子

  1. 打开包管理器控制台窗口,
  2. 输入以下命令:update-database

【讨论】:

  • 这是我的连接字符串: 这是我现在得到的异常:Exception Details: System.ArgumentException: Unable to find the requested .Net Framework Data Provider .它可能没有安装有什么想法吗? CE怎么没有安装,我用新项目等添加了它的数据库。
  • 似乎Exception与我的Employee模型类有关
【解决方案2】:

您的网络应用程序打开一个空的数据库文件,检查您的文件系统以获取该文件的副本。尝试使用数据库文件的完整路径而不是 |DataDirectory|

【讨论】:

  • 你能详细说明你的意思吗?
  • 这是我的连接字符串: 这是我现在得到的异常:Exception Details: System.ArgumentException: Unable to find the requested .Net Framework Data Provider .它可能没有安装有什么想法吗? CE怎么没有安装,我用新项目等添加了它的数据库。
  • 似乎异常与我的Employee模型类有关
  • @quser:你试过这个链接stackoverflow.com/questions/6865249/…
【解决方案3】:

您的 web.config 中连接字符串的 providerName 属性值不正确,或者未安装 Web 服务器上的提供程序。如果提供者名称是

System.Data.SqlService.4.0 (Sql Server Compact)

它仅在 Visual Studio 中用于开发。如果您在没有带有 SQL compact 的 Visual Studio 的不同机器上运行,则可能需要在该机器上安装。如果它在您的机器上存在,那么您可以验证版本 4.0 是否正确,这意味着它是否是您正在寻找的正确版本。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    • 2013-02-04
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多