zoukankan      html  css  js  c++  java
  • EFCore自己用的点东西

    测试一下EF core 的操作 蛀牙总是用导航属性有的时候有点不理解 写个例子给自己用

    class Program
        {
            static void Main(string[] args)
            {
                MyDbContext myDbContext = new MyDbContext();
               
    
                try
                {
                    #region 添加业务/第一种添加 student中把导航属性school也加进去 这是新的用法
                    //AddWithDaoHangShuXing(myDbContext);
                    #endregion
    
                    #region 添加业务/第二种添加 先添加student 添加后再添加school
                    //AddWithSingle(myDbContext);
                    #endregion
    
                    #region 修改业务 按照通俗的业务逻辑 那么修改传回来的就是类型本身 即所有的属性都可以更改
                    //1.首先 查出来所有的学生数据
                    //1.1 lambada表达式
                    var students = myDbContext.Student.ToList();
                    var studentWithDaoHangShuXings = myDbContext.Student.Include(x => x.School).ToList();
                    var studentWithDaoHangShuXingProvinceces = myDbContext.Student.Include(x => x.School).ThenInclude(x=>x.Province).ToList();
                    //1.2 linq
                    var studentLinqs = (from s in myDbContext.Student 
                                        select new { 
                                            s.StudentId, s.StudentAge, s.StudentName, s.School 
                                        }).ToList();
                                       #endregion
    
                    Console.WriteLine("操作完毕!");
                }
                catch (Exception ex)
                {
    
                }
                Console.ReadLine();
            }
    
            private static void AddWithSingle(MyDbContext myDbContext)
            {
                Student student = new Student
                {
                    StudentName = "张汶莱",
                    StudentAge = 26
                };
                myDbContext.Student.Add(student);
                myDbContext.SaveChanges();
    
                School school = new School
                {
                    StudentId = student.StudentId,
                    SchAddress = "广发学校",
                    SchName = "广发学校地址"
                };
                myDbContext.School.Add(school);
                myDbContext.SaveChanges();
            }
    
            private static void AddWithDaoHangShuXing(MyDbContext myDbContext)
            {
                Province province = new Province
                {
                    ProvinceLeaderName = "党中央",
                    ProvinceName = "陕西省"
                };
    
                School school = new School
                {
                    SchAddress = "老毛学校地址",
                    SchName = "老毛小学",
                    SchoolId = 0,
                    Province = province
                };
                Student student = new Student
                {
                    StudentAge = 12,
                    StudentName = "梁非凡",
                    School = school,
                    StudentId = 0
                };
                myDbContext.Student.Add(student);
                myDbContext.SaveChanges();
            }
        }
    
    
       public class Province
        {
            public int ProvinceId { get; set; }
            public string ProvinceName { get; set; }
    
            public string ProvinceLeaderName { get; set; }
        }
    
    
    public class School
        {
            public int SchoolId { get; set; }
            public int StudentId { get; set; }
    
            public string SchAddress { get; set; }
    
            public string SchName { get; set; }
    
            public Province Province { get; set; }
        }
    
    
    public class MyDbContext : DbContext
        {
            /// <summary>
            /// 配置数据连接信息
            /// </summary>
            /// <param name="optionsBuilder"></param>
            protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                optionsBuilder.UseSqlServer("Server=.;DataBase=TestMyDb;Uid=sa;Pwd=123456");
                base.OnConfiguring(optionsBuilder);
            }
    
    
            public DbSet<Student> Student { get; set; }
    
            public DbSet<School> School { get; set; }
        }
    
    public class Student
        {
            public int StudentId { get; set; }
    
            public string StudentName { get; set; }
    
            public int StudentAge { get; set; }
    
    
            //导航属性
            public School School { get; set; }
        }

      

  • 相关阅读:
    页面布局
    Vue学习指南
    《前端JavaScript重点》学习笔记 6-12
    复习3----作用域和闭包
    复习1-变量类型和计算
    复习2--js原型与原型链2
    慕课网《前端JavaScript面试技巧》学习笔记(2)-原型和原型链
    旋转图片
    UITextView添加行距
    YYKit之YYText
  • 原文地址:https://www.cnblogs.com/yagamilight/p/13962987.html
Copyright © 2011-2022 走看看