似乎无法将数据从SQL Compact Edition加载到MVC 4应用程序

时间:2015-10-03 20:57:38

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

我正在关注本教程:http://www.w3schools.com/aspnet/mvc_models.asp,以使用Entity Framework从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类属性)

PS。这是我停止运行应用程序后数据库的外观 enter image description here

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

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

enter image description here

这是我的连接字符串

 <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框架数据提供者。它可能没有安装。

     

来源错误:

     

第17行:第18行:EmployeeContext e = new   EmployeeContext();第19行:var list = e.Employeeslist.ToList(); //此处为例外

3 个答案:

答案 0 :(得分:0)

您的网络应用会打开一个空的数据库文件,请检查您的文件系统中是否有该文件的副本。尝试使用数据库文件的完整路径而不是| DataDirectory |

答案 1 :(得分:0)

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

请参阅

矮个子

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

答案 2 :(得分:0)

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

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

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

希望这有帮助!