EF + EFCore 学习

EFCore 新增 EF.Function

在EFCore 2.0开始,在使用时增加了 EF.Function方法,此方法对应数据库中的函数,在.Net5中会大次推广

比较通用的是 Like方法:

例子:

using Microsoft.EntityFrameworkCore;
       public void GetUserinfo()
        {
            _dbContext.UserInfos.Where(c => EF.Functions.Like(c.UserName, "%风%")).ToList();
        }

其他使用方式目前未使用过,以后可以尝试:

基本是一些时间函数,与数据库中常用的函数功能相同

例子:

using Microsoft.EntityFrameworkCore;
     
            EF.Functions.Contains();
            EF.Functions.DateDiffDay();
            EF.Functions.DateDiffHour();
            EF.Functions.DateDiffMinute();
            EF.Functions.DateDiffMonth();
            EF.Functions.DateDiffSecond();
            EF.Functions.DateDiffYear();
            EF.Functions.IsDate();

Entity Framework 特性:

  • 跨平台: EF Core 是一个跨平台的框架,它可以运行在 Windows,Linux和 Mac上。
  • 建模: EF (Entity Framework) 创建一个基于 POCO (Plain Old CLR Object) 实体的 EDM (Entity Data Model),POCO实体含有不同数据类型的get/set 属性 (properties)。EF 在查询和保存实体数据到底层数据库的时候会使用 EDM 模型。
  • 查询: EF 允许我们使用 LINQ 查询(C#/VB.NET)从底层数据库检索数据。数据库提供器将 LINQ 查询转换成特定数据库的查询语言(例如:关系型数据库的SQL).EF也允许我们执行原生的SQL查询来查询数据库。
  • 改变跟踪: 实体实例中 (Property values) 中发生的需要被提交到数据库的任意改变将被 EF 持续跟踪。
  • 保存: 当你调用SaveChanges()方法时,EF会根据你的实体的改变执行INSERT, UPDATE, 和DELETE命令。EF也提供异步方法SaveChangesAsync()
  • 并发: 当其他用户从数据库获取数据后要重写数据时,EF默认采用乐观并发(Optimistic Concurrency)。
  • 事务: 当查询和保存数据时,EF执行自动事物管理。EF也提供了定制事务管理的选项。
  • 缓存: EF包含开箱即用的第一级缓存。所以,重复查询将会返回缓存中的数据,而不是再次访问数据库。
  • 内置约定: EF遵循约定高于配置的编程模式,并且包含了一组默认规则用来自动配置EF模型。
  • 配置: EF允许我们使用数据注释特性或者 Fluent API 来重写默认的约定。
  • 迁移: EF提供了一组迁移命令,可以在 NuGet Package Manager Console 或者 Command Line Interface 中创建和管理底层数据库架构。

生成数据库命令

//初始化EF(仅执行一次即可)

Install-Package EntityFramework

//生成更新操作文件

EntityFrameworkCore\Add-Migration 后面直接加上备注

//在执行add-Migration发生错误时使用,可以撤回生成cs文件

EntityFrameworkCore\Remove-Migration

//更新至数据库

EntityFrameworkCore\update-database

生成数据库的注意事项:

在c#中int类型为不可空类型,在数据库中可以为空,为实现此效果,需要在模型中增加前缀。例子:

public Nullable NaturalYear { get; set; } //**增加此参数可实现,“非必填”从而实现可空
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值