我正在关注本教程: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类属性)
那么在ASP MVC 4应用程序中使用entiry框架从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框架数据提供者。它可能没有安装。
来源错误:
第17行:第18行:EmployeeContext e = new EmployeeContext();第19行:var list = e.Employeeslist.ToList(); //此处为例外
答案 0 :(得分:0)
您的网络应用会打开一个空的数据库文件,请检查您的文件系统中是否有该文件的副本。尝试使用数据库文件的完整路径而不是| DataDirectory |
答案 1 :(得分:0)
答案 2 :(得分:0)
web.config中连接字符串上的providerName属性值不正确或未安装Web服务器上的提供程序。如果提供商名称是
System.Data.SqlService.4.0 (Sql Server Compact)
它仅用于Visual Studio内部进行开发。如果您在没有Visual Studio的Visual Studio的不同机器上运行,那么您可能需要在该机器上安装。如果它在你的机器上,那么你可以验证版本4.0是否正确,意味着它是你正在寻找的正确版本。
希望这有帮助!