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; }
}
EFCore自己用的点东西的更多相关文章
- Entity Framework Core 2.0 入门简介
不多说废话了, 直接切入正题. EF Core支持情况 EF Core的数据库Providers: 此外还即将支持CosmosDB和 Oracle. EFCore 2.0新的东西: 查询: EF.Fu ...
- Entity Framework Core 2.0 入门
该文章比较基础, 不多说废话了, 直接切入正题. 该文分以下几点: 创建Model和数据库 使用Model与数据库交互 查询和保存关联数据 EF Core支持情况 EF Core的数据库Provide ...
- 手把手撸套框架-ORM框架的选择
目录 一,为什么选择SqlSugar? 在.net core ORM框架中,能选择的方案其实有很多,包括以下方案: 1,EF-Core 2,Dapper 3,FreeSql 4,SqlSugar 为什 ...
- .net core web api + Autofac + EFCore 个人实践
1.背景 去年时候,写过一篇<Vue2.0 + Element-UI + WebAPI实践:简易个人记账系统>,采用Asp.net Web API + Element-UI.当时主要是为了 ...
- EFCore动态切换Schema
最近做个分库分表项目,用到schema的切换感觉还是有些坑的,在此分享下. 先简要说下我们的分库分表 分库分表规则 我定的规则是,订单号(数字)除以16,得出的结果为这个订单所在的数据库,然后他的余数 ...
- Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- 从EFCore上下文的使用到深入剖析DI的生命周期最后实现自动属性注入
故事背景 最近在把自己的一个老项目从Framework迁移到.Net Core 3.0,数据访问这块选择的是EFCore+Mysql.使用EF的话不可避免要和DbContext打交道,在Core中的常 ...
- netcore使用EFcore(第一个实例)
说明:搭建netcore 使用efcore入门教程,跟着这个教程,傻瓜都可以成功!O(∩_∩)O哈哈~,咱们开始吧: 首先介绍下环境: vs2017, netcore2.2, EntityFramew ...
- 【限时免费】AppBoxCore - 细粒度权限管理框架(EFCore+RazorPages+async/await)!
目录 前言 全新AppBoxCore RazorPages 和 TagHelpers 技术架构 页面处理器和数据库操作的异步调用 Authorize特性和自定义权限验证过滤器 Authorize登录授 ...
随机推荐
- DM8数据库备份还原的原理及应用
(本文部分内容摘自DM产品技术支持培训文档,如需要更详细的文档,请查询官方操作手册,谢谢) 一.原理 1.DM8备份还原简介 1.1.基本概念 (1)表空间与数据文件 ▷ DM8表空间类型: ▷ SY ...
- Windows VS Code 配置 C/C++ 开发环境
准备 Windows [这个相信大家都有 笑: )] VS Code MinGW-w64 C/C++ 安装 MinGw-w64 具体说明细节和安装体验可以在<⑨也懂系列:MinGW-w64安装教 ...
- IDEA设置maven修改settings.xml配置文件无法加载仓库
作为初学者配置maven一般网上搜索.然后你就看到各种配置文件片段,首先配置镜像,然后配置仓库.完事后再IDEA里面配置下maven的路径和配置文件路径. 这些文章属实坑爹,完全没讲一个重要的配置就是 ...
- 多测师讲解自动化测试_rf运行无日志(解决方法)_高级讲肖sir
rf运行无日志(解决方法) 出现现象: 方法: 1.先在套件里面导入OperatingSystem库 2.在套件中新建一个关键字套件点击右键选择new user keyword关键 字的名称为:kil ...
- Go语言基础知识01-用Go打个招呼
每一种编程语言,从读一本好书开始 每一种编程语言,也从Helloworld开始 1. 环境准备 1.1 安装golang 在Ubuntu下,直接输入命令可以安装最新版本: $ sudo apt-get ...
- 运行shell文件时提示/bin/bash^M: bad interpreter: 没有那个文件
查看脚本文件是dos格式还是unix格式的几种办法.(1)cat -A filename 从显示结果可以判断,dos格式的文件行尾为^M$,unix格式的文件行尾为$:(2)od -t x1 file ...
- asp.net 获取网站根目录总结 Global.asax文件里获取获取网站根目录
1: 获取网站根目录的方法有几种如: Server.MapPath(Request.ServerVariables["PATH_INFO"])Server.MapPath(&qu ...
- Cypress系列(69)- route() 命令详解
如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 作用 管理控制整个网络请求 重要注意事项 ...
- Java8新特性--Base64转换
1.简介 在Java8中,Base64编码已经成为Java类库的标准.Java 8 内置了 Base64 编码的编码器和解码器. Base64工具类提供了一套静态方法获取下面三种BASE64编解码器: ...
- nginx给consul集群配置负载均衡
upstream consul { server 127.0.0.1:8501; server 127.0.0.1:8502; server 127.0.0.1:8503; } server { li ...