十九、EF框架(Entity FrameWork Core框架)

EF框架是微软封装好一种ADO.NET数据实体模型,将数据库结构以ORM模式映射到应用程序中。

优点:

  1. 简洁的Linq to Sql语句大大提高了开发人员的效率,不要再写复杂的sql语句;
  2. 不再需要再管应用程序如何去连接数据库;
  3. EF可以用作用于数据服务和OData Service的基础设施;

缺点:

  1. 由于linq语句编译之后就是sql,对于这种自动生成的sql语句无法控制;
  2. EF的运行机制会消耗大量内存,大大降低了程序运行效率,从而导致降低了用户在客户端的体验效果;
  3. 一旦数据结构发生变化,需要更新EF数据model;有时还可能会出现找不到更新过的实体类这种情况;

EF框架使用步骤:

一、根据数据库生成实体类(webApi---Sqlserver数据库)

1.修改浏览器访问地址和端口,也可以在项目属性-调试里设置
  也可以在项目的Program里设置:app.Run("http://*:8080");

2.引用几个NuGet程序包,能自动生成数据库对应的实体类(版本最好都统一,避免出现程序包冲突)
                Microsoft.EntityFrameworkCore --6.0.0版本
                Microsoft.EntityFrameworkCore.SqlServer --6.0.0版本(本机使用的是SqlServer数据库,如果要使用其它数据库,后缀名选用其它数据库的就行,例如XXX.MySql)
                Microsoft.EntityFrameworkCore.Design --6.0.0版本
                Microsoft.EntityFrameworkCore.Tools --6.0.0版本

3.在数据库中创建自己需要的表

4.视图-程序包管理控制台,输入指令:
  Scaffold-DbContext -Force "Server=.;Database=EntityFrameWorkCore;uid=sa;Password=root;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context WebApiContext 回车就会自动创建数据库对应实体类
            Server:后是数据库所在的主机的ip地址。本机使用.或者localhost都行
            Models:存放自动创建的实体类的文件夹名(可以自己命名)
            WebApiContext:直接操作数据库类的类名(可以自己命名),(有这个类后,不用我们再写连接数据的逻辑了,只需要使用这个类的实例调用实体类,就可以对实体类对应的数据库表进行CRUD操作)


5.可以手动在Controller文件夹长创建控制类(别忘了继承ControllerBase,加[ApiController]标识和[Route("")]根接口地址)。也可以自动创建,右击Controller文件夹---添加---控制器-空---(Api 控制器空/类---C#--ASP.NET Core ---Web---ASP.NET---API 控制器-空。即可自动创建

6.响应出现乱码解决
           #region 响应中文乱码时,可以在Program启动类的Main函数中添加这行代码
            builder.Services.AddControllersWithViews().AddJsonOptions(options =>
            {
                options.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All);
            }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值