闪电龟龟--笔记

万物寻其根,通其堵,便能解其困。
随笔 - 169, 文章 - 0, 评论 - 1, 阅读 - 79596
  博客园  :: 新随笔  :: 管理

使用ef core 的简单配置

Posted on   闪电龟龟  阅读(314)  评论(0编辑  收藏  举报

注:下面内容摘自https://blog.csdn.net/qq_25086397/article/details/88895763https://blog.csdn.net/weixin_43537631/article/details/110678496博客,如有学习,请自行跳转

以下仅为自行记录笔记。

1.前期准备插件

  Microsoft.EntityFrameworkCore.SqlServer(放在模型-数据库实体项目)

  Microsoft.EntityFrameworkCore.Tools(放在模型-数据库实体项目)

  Microsoft.EntityFrameworkCore(放在主项目)

  Microsoft.EntityFrameworkCore.Design(放在主项目)

2.使用efcore相关配置

复制代码
namespace EFCModels
{
    /// <summary>
    /// 数据库模型
    /// </summary>
    public class User
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public string PWD { get; set; }
    }
}
复制代码

 

 

复制代码
using EFCModels;
using Microsoft.EntityFrameworkCore;

namespace EFCModel
{
    /// <summary>
    /// 建立上下文
    /// </summary>
    public class EFMContext:DbContext
    {
        public EFMContext(DbContextOptions<EFMContext> options) : base(options) { }
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            base.OnConfiguring(optionsBuilder);
        }
        /// <summary>
        /// 数据库实体
        /// </summary>
        public DbSet<User> Users { get; set; }
    }
}
复制代码

 

 

 

string connection = @"server=NAMEJR-PC;database=EFCoreDemo;uid=*******;pwd=*******";//windows身份验证(添加数据库路径)
            services.AddDbContext<EFMContext>(options => options.UseSqlServer(connection, c => c.MigrationsAssembly("EFCoreUse")));  // 配置当前项目关联实体和数据库

 

打开控制台准备进行生成数据库

 

 

生成对应的数据库信息

 

 3.拓展

   3.1关于数据库字段的限制,详细可查看https://www.cnblogs.com/wuqingzangyue/p/5770008.html,此处仅做笔记记录

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

namespace EFCModels
{
    [Table("User")]  // 设置表名
    /// <summary>
    /// 数据库模型
    /// </summary>
    public class User
    {
        // 可以写成[Key,Required]
        [Key]  // 设置主键
        [Required]  // 必填字段
        [Column("id",Order =0,TypeName ="int(11)")]  //id表示数据库的名称,Order表示出现的顺序,TypeName类型
        public int ID { get; set; }
        [MaxLength(20),MinLength(0)]  // 设置最大最小长度
        public string Name { get; set; }
        [NotMapped]  // 单独的数据(不会映射到数据库中去,获取的时候也不是从数据库中获取)
        public string PWD { get; set; } = "******";
    }
}
复制代码

 

 

 

 

//

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2019-01-30 错误调式 异常处理
2019-01-30 类型转换、判断
点击右上角即可分享
微信分享提示