关于EF6.0的一些BUG

这些天在研究EF Code First模式来开发新的项目,但在使用EF的时候发现了一些坑,在此列出来,希望大家不要跳到这个坑里面。

1.正常我们新建好一个项目后,会使用Nuget添加EF:

  Install-package EntityFramework -Version 6.0.0 

  Install-Package EntityFramerwork.zh-hans

2.新建BaseDbContext类来继承DbContext:  

Public Class BaseDbContext:DbContext

{

  public BaseDbContext():base("name=SqlserverCon") //为app.config或web.config里面的数据库连接字符串

  {    

  }

  public virtual DbSet<User> User { get; set; }

}

3.以上是创建好我们自己的Dbcontext,接下来我们就要启用数据迁移,在控制台输入:Enable-Migrations 报以下错误:

No connection string named 'SqlserverCon' could be found in the application config file.

提示在app.config找不到SqlserverCon连接字符串,这刚开始以为是app.config文件配置错误,打开配置文件又能找到SqlserverCon,明明有但为啥就提示找不到呢?结果折腾了半天都没有解决问题。不晓得是不是EF 6.0BUG,最后将BaseDbContext构造函数中的("name=SqlserverCon")去掉name字段直接写成("SqlserverCon").在此运行Enable-Migrations,虽然不提示上面错误,但问题又来了:

An error occurred while getting provider information from the database. This can be caused by Entity Framework using an incorrect connection string. Check the inner exceptions for details and ensure that the connection string is correct.

上面错误意思大概是连接数据库错误,找不到提供的数据库。结果又去检查字符串连接,发现没有什么问题,这个字符串我一直在用,在EF上面就不能用了?结果有折腾了半天,最后在Nuget 里面更新EF :

  Install-package EntityFramework

再次运行:Enable-Migrations

PM> Enable-Migrations
Checking if the context targets an existing database...
Code First Migrations enabled for project Lixise.RemoteControl.DalMsSql.

提示当前项目已经启用Code First数据迁移,到此上面2个问题通过更新EF到最新版本和删除name字段得到了解决,但在后面在添加实例到数据库时有出现错误,将在下篇文章来写出来,解决问题步骤。

转载于:https://www.cnblogs.com/hack301/p/4963990.html

ASP.NET Core 6.0 是微软推出的一个跨平台的开发框架。在这个版本中,Entity Framework Core 6.0(EF Core)作为其默认的对象关系映射(ORM)工具,被广泛应用于开发项目。 ASP.NET Core 6.0 中的项目代码主要由以下几个部分组成: 1. 控制器(Controllers):控制器是处理用户请求的核心部分。ASP.NET Core 使用路由来映射 URL 到相应的控制器操作。通过定义不同的动作方法,控制器可以处理 GET、POST、PUT、DELETE 等不同类型的请求,并返回相应的动态页面或数据。 2. 视图(Views):视图是用来展示数据的部分,通常是用 HTML、CSS 和 JavaScript 编写的。ASP.NET Core 中的视图使用 Razor 语法,可以直接访问模型数据并生成动态的 HTML 页面。视图可以与控制器中的动作方法相对应,通过模型和视图数据共同呈现页面内容。 3. 模型(Models):模型是用来定义数据结构和业务逻辑的部分。在 EF Core 中,通过定义实体类来表示数据库表,每个属性对应表中的一列。模型还包括对数据的验证规则以及与数据库的交互。 4. 中间件(Middleware):中间件是位于请求管道中的组件,可以对请求和响应进行处理和转换。ASP.NET Core 6.0 中的中间件可以在请求进入控制器之前或之后对其进行拦截和处理,用于实现身份认证、日志记录、异常处理等功能。 5. 数据访问层(Data Access Layer):在 EF Core 中,数据访问层用于与数据库进行交互。通过 EF Core 提供的 API,开发者可以轻松地执行查询、更新、插入和删除等操作,并且不需要编写大量的原始 SQL 语句。 综上所述,ASP.NET Core 6.0 项目代码包括控制器、视图、模型、中间件和数据访问层等多个部分,它们相互配合完成从用户请求到数据响应的整个过程,实现了一个完整的 Web 应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值