EFCore中代码优先锲约和数据类型与数据库的对应关系

本文探讨了在EFCore中如何实现代码优先的数据库契约,详细介绍了从添加模型更改到更新数据库的过程,包括安装必要的包、配置Context、模型与数据库表的对应关系,以及如何生成和应用迁移。通过示例展示了Users模型与数据库表结构的对应,并对一些关键点进行了简要总结。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、引言

EntityFramework Core这个我在这里就不想做相关介绍了,EFCore是netcore中才出现了,它的前身可以说是EF6,下面就对实体中定义的契约与数据库的对应做一个尝试,在实际工作中用了一段时间后现做一个整体的总结。

因为有时候只管写了实体,没有去在乎数据库中生成的结构是怎样的,开发开发着途中就会出现问题

2、需要安装的包

我这里仅对Sql Server做示例,至于Mysql、PostgreSQL、Oracle就留给读者带着同样的思路去做尝试。

1、首先需要安装的包

  • Microsoft.EntityFrameworkCore
  • Microsoft.EntityFrameworkCore.Design
  • Microsoft.EntityFrameworkCore.SqlServer
    2、配置Context
    这些都是很简单的东西,在这就做过多的解释,直接贴出代码。
  • 定义StudyDbContext
public class StudyDbContext:DbContext
{
   
    public StudyDbContext() {
    }

    public StudyDbContext(DbContextOptions<StudyDbContext> options) : base(options){
   }


    public DbSet<Users> Users {
    get; set; }
    /// <summary>
    /// 模型创建的进行时候配置
    /// </summary>
    /// <param name="modelBuilder"></param>
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
   
        base.OnModelCreating(modelBuilder);
    }
}

注意:Context中又一个重载构造,实际上是在Service中添加Context的时候进行的配置

  • ConfigureServices中添加Context服务
public void ConfigureServices(IServiceCollection services)
{
   
    services.AddRazorPages();

    services.AddDbContext<StudyDbContext>(builder => builder.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值