如何解决无法使用实体框架和SQL Server数据库访问ASP.NET MVC Web应用程序中的数据
在ASP.NET MVC Web应用程序中,我创建了以下实体:
[Table("tblEmployee")]
public class Employee
{
public int EmployeeId { get; set; }
public string Name { get; set; }
public string Gender { get; set; }
public string City { get; set; }
}
但是,当我尝试使用实体框架从名为tblEmployee
的数据库表中检索数据时,出现错误。到目前为止,我所做的是:
- 使用“。”创建数据库
MVCDemo
。作为服务器名称,并使用Windows身份验证包含一个名为tblEmployee
的表
- 已安装的实体框架
- 将
EmployeeContext.cs
类文件添加到Models
文件夹中
代码:
namespace MVCDemo.Models
{
public class EmployeeContext : DbContext
{
public DbSet<Employee> Employees { get; set; }
}
}
-
<connectionSrtings> <add name="EmployeeContext" connectionString="server=.; database=MVCDemo; integrated security=sspI" providerName="System.Data.sqlClient;" /> </connectionSrtings>
-
将详细信息actionResult添加到EmployeeController以显示员工详细信息:
namespace MVCDemo.Controllers { public class EmployeeController : Controller { // GET: Employee public ActionResult Details(int id) { EmployeeContext employeeContext = new EmployeeContext(); Employee employee = employeeContext.Employees.Single(e => e.EmployeeId == id); return View(employee); } } }
最后,我将以下代码添加到Global.asax
中以防止初始化:
Database.Setinitializer<MVCDemo.Models.EmployeeContext>(null);
问题是当我运行应用程序时出现此错误:
当我注释掉连接字符串并尝试连接
时http://localhost:60613/Employee/Details/1
System.Data.Entity.Core.EntityException:'基础提供程序在打开时失败。'sqlException:无法附加文件'C:\ Users \ arya \ source \ repos \ MVCDemo \ MVCDemo \ App_Data \ MVCDemo.Models。 EmployeeContext.mdf”作为数据库“ MVCDemo.Models.EmployeeContext”。
解决方法
检查您的标签名称,这是不正确的。肯定会触发错误。
Sub GetDataFromExclFileOnSP()
Const SPURL As String = "https://contoso.sharepoint.com/teams/myTeam/"
Const SPFld As String = "mySpFolderName"
Const myFileName As String = "mySpFileName.xlsx"
Dim srcFileStr As String
Dim cn As Object
Set cn = CreateObject("ADODB.Connection")
srcFileStr = GetWebDavStr(SPURL & "/" & SPFld & "/" & myFileName)
'GetWebDavStr converts the SP url string into a WebDav string
'\\contoso.sharepoint.com@ssl\teams\myTeam\mySpFolderName\mySpFileName.xlsx
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & srcFileStr & ";Extended Properties=""Excel 12.0 Xml;HDR=YES"";"
'rest of code
End Sub
应该是:
<connectionSrtings>
更新: 由于您还有其他问题,请修复连接字符串的最后一部分:
<connectionStrings>
删除SqlClient末尾的分号。
,首先,我看不到您的数据库连接。是的,您已经教过表格,但是您没有告诉程序将这些信息放在哪里。像这样:
optionsBuilder.UseSqlServer("Data Source=databaseName")
第二个可能的原因是您的程序不知道从头开始。我之前遇到这些错误,并使用默认地图解决了该问题。
第三个原因,这可能不正确,但是您写了“ connectionSrtings”错误。正如我所说,可能不是那样,但是我想提一提。
,这是因为如果您在MVCDemo
中有一个名为SQL Server
的数据库,那么它就可以了,否则,可以通过代码优先的方法在SQL Server中寻找MVCDemo
数据库。如果您在SQL Server中没有数据库,请尝试使用此connection string
首先创建mdf
文件。
connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-MVCDemo-20200820010246.mdf;Initial Catalog=aspnet-MVCDemo-20200820010246;Integrated Security=True"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。