闪电龟龟--笔记

万物寻其根,通其堵,便能解其困。
  博客园  :: 新随笔  :: 管理

使用ef core 的简单配置

Posted on 2022-01-30 18:59  闪电龟龟  阅读(312)  评论(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; } = "******";
    }
}

 

 

 

 

//