EFCore自己用的点东西

yagamilight 2020-11-12 原文


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; }
    }

 

  

发表于
2020-11-12 11:26 
夜神月君 
阅读(0
评论(0
编辑 
收藏

 

版权声明:本文为yagamilight原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/yagamilight/p/13962987.html

EFCore自己用的点东西的更多相关文章

  1. 读入、输出优化

    在默认情况下, std::cin/std::cout 是极为迟缓的读入/输出方式,而 scanf/printf […]...

  2. C# 流水号生成器开发

    前言  本文将使用一个Nuget公开的组件技术来实现一个流水号生成器,提供了一些简单的API,来方便的实现一个 […]...

  3. C++ — memset()函数

    memset 函数是内存赋值函数,用来给某一块内存空间进行赋值的; 包含在<string.h>头文 […]...

  4. Docker & ASP.NET Core (1):把代码连接到容器

    和这种蛋糕一样,Docker的容器和镜像也是使用类似的分层文件系统构建而成的。 这样做的好处就是可以节省硬盘空 […]...

  5. .Net Core微服务——Consul(4):主从、集群

    延续上一篇的话题继续,顺便放上一篇的传送门:点这里。 集群的必要性 consul本身就是管理集群的,现在还需要 […]...

  6. 在Azure中创建asp.net core 应用

    0、前言  在玩转Azure之前首先大家要有Azure账号,或者可以先申请一下微软的账号,然后进行与Azure […]...

  7. EntityFramework Core 迁移忽略主外键关系

    前言 本文来源于一位公众号童鞋私信我的问题,在我若加思索后给出了其中一种方案,在此之前我也思考过这个问题,借此 […]...

  8. ASP.NET Core 基于声明的访问控制到底是什么鬼?

    从ASP.NET 4.x到ASP.NET Core,内置身份验证已从基于角色的访问控制(RBAC)转变为基于声 […]...

随机推荐

  1. DOME-5 单元测试

    Egg单元测试 单元测试,为应用的稳定性提供了一层保障。代码改变之后可以通过测试结果判断代码的改动是够会影响结 […]...

  2. Winfrom中如何使用Iconfont字体图标补充

    1.参考技术文章:http://www.cnblogs.com/isaboy/p/csharp_Font_Aw […]...

  3. 阿里巴巴Java开发程序猿年薪40W是什么水平?

    对于年薪40万的程序员,不只是技术过硬,还有一个原因是他们所在的公司福利高,或者会直接持股。在BAT中就是一个 […]...

  4. 租车系统

    package cn.shoot; import java.util.Scanner; public clas […]...

  5. 阿里云VS腾讯云 谁才是中国未来的云计算之王?

    阿里云早在 2009 年就已经开始布局云计算领域,具有先发优势。据统计,40% 的中国 500 强企业、近一半 […]...

  6. 企业微信如何做客户关系管理

    关于企业微信 2016年4月,腾讯宣布正式发布“企业微信”1.0版,并在Mac、Windows、iOS、And […]...

  7. 思维导图局域网共享功能使用教程

    局域网共享是思维导图XMind 6团队精心打造的协作功能,提高团队的沟通效率和协作水平,一键分享,局域网内的其 […]...

  8. 原型模式

    原型模式 通过拷贝原型对来象创建一个新对象的方式就叫原型模式,理解起来没有什么难度,唯一有点疑问的就是为啥要用 […]...

展开目录

目录导航