EFCore之Code First

定义实体类和数据库上下文

新建一个Web API项目,使用NuGet引入如下组件

Microsoft.EntityFrameworkCore

Microsoft.EntityFrameworkCore.SqlServer

Microsoft.EntityFrameworkCore.Design

Microsoft.EntityFrameworkCore.Tools

SqlServerContext 代码如下:

cs 复制代码
using Canteen.Services;
using EFCodeFirst.Models;
using Microsoft.EntityFrameworkCore;

namespace EFCodeFirst.Context
{
    public class SqlServerContext:DbContext
    {
        public SqlServerContext()
        {

        }
        public SqlServerContext(DbContextOptions<SqlServerContext> options) : base(options) { }
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            if (!optionsBuilder.IsConfigured)
            {
                var sqlServerConString = ConfigurationHelper.GetConfigValueByKey("ConnectionStrings:MSSQLDbConnection");// Gobal_Setting.Instance.GetSettingValue("ConnectionStrings:MSSQLDbConnection");
                optionsBuilder.UseSqlServer(sqlServerConString, sqlOptions =>
                {
                    sqlOptions.EnableRetryOnFailure(5, TimeSpan.FromSeconds(10), null); // 连接重试策略
                });
            }
            base.OnConfiguring(optionsBuilder);
        }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<T_Author>();
            base.OnModelCreating(modelBuilder);
        }

        public virtual DbSet<T_Author> Author { get; set; } 
    }
}

添加Author代码:

cs 复制代码
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace EFCodeFirst.Models
{
    [Table("T_Author")]
    public class T_Author
    {
        [Key]
        public int Id { get; set; }
        [Required]
        [StringLength(20)]
        public string gName {  get; set; }

        [StringLength(50)]
        public string CardID { get; set; }

        /// <summary>
        /// 信息
        /// </summary>
        [NotMapped]
        public string Info { get => $"姓名:{gName},地址:{CardID}"; }
    }
}

在NuGet控制台中输入如下命令:

cs 复制代码
Add-Migration m1

然后更新数据库:

cs 复制代码
Update-Database

数据库里会添加表T_Author

相关推荐
Lank_M8 分钟前
抠图结果缩放后边缘发脏,该怪的不是插值
前端
jerrywus13 分钟前
Skill、MCP、Workflow、Rules、Memory 有什么区别?拿几次真实开发任务讲清楚
前端·agent·claude
补码缩写13 分钟前
canvas 与 sharp 缩放透明图:默认预乘,非预乘得拆通道
前端
静默回滚15 分钟前
抠图 PNG 缩小再放大,边缘又糊又白是两件事
前端
用户119770794807323 分钟前
GitHub 电商开源项目分享:用 sharp 批量出饰品主图,试了裁剪、细节图和色彩配置文件三个坑
前端·node.js
deli00728 分钟前
地图定位为什么偏了 500 米?GPS 与火星坐标实测
前端
TK泰妞30 分钟前
节日促销前,TikTok 商品视频应该提前准备什么?
前端·人工智能·节日
CCIE-Yasuo41 分钟前
网络安全-学习web开发-列表、标签
前端·学习·web安全
小大宇1 小时前
Vue知识点-ElementPlus-06 单选+多选+下拉+日期选择
前端·vue.js·elementui
用户11481867894841 小时前
Nuxt 3 学习版 Demo:跟着做一遍,从跑起来到自己会改
前端