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登录授 ...
随机推荐
- GAN网络之入门教程(四)之基于DCGAN动漫头像生成
目录 使用前准备 数据集 定义参数 构建网络 构建G网络 构建D网络 构建GAN网络 关于GAN的小trick 训练 总结 参考 这一篇博客以代码为主,主要是来介绍如果使用keras构建一个DCGAN ...
- java安全编码指南之:输入注入injection
目录 简介 SQL注入 java中的SQL注入 使用PreparedStatement XML中的SQL注入 XML注入的java代码 简介 注入问题是安全中一个非常常见的问题,今天我们来探讨一下ja ...
- lua 1.0 源码分析 -- 1 lua 的虚拟指令
lua的解释器拿到 lua 编写的源码,首先进行解析,就是进行词法分析和语法分析,将源码转换成 lua 的指令集,然后执行这个指令集. lua 源码: function f(val) return v ...
- 集训DP复习整理
DP复习 集训%你赛2:测绘(审题DP) 经过2000+个小时的努力终于把这道题做出来的蒟蒻通 分析: 这道题我一直没做出来的原因就是因为我太蒟了题面看不懂,题面读懂了,其实不是特别难. 题目翻译: ...
- 持续集成工具之jenkins+sonarqube做代码扫描
上一篇我们主要聊了下代码质量管理平台sonarqube的安装部署以及它的工作方式做了简单的描述和代码扫描演示:回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13 ...
- centos8安装fastdfs6.06集群方式三之:storage的安装/配置/运行
一,查看本地centos的版本 [root@localhost lib]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) 说 ...
- matplotlib 设置标题 xy标题等
import matplotlib.pyplot as plt import matplotlib as mpl baseclass=[1,2,3,4] name = ['class1','class ...
- MS SQL SERVER执行大脚本文件时,提示“内存不足”的解决办法
问题描述: 当客户服务器不允许直接备份时,往往通过导出数据库脚本的方式来部署-还原数据库, 但是当数据库导出脚本很大,用Microsoft SQL Server Management Studio执行 ...
- 第十二章 配置vlan
一.vlan技术简介 1.广播风暴 广播风暴(broadcast storm)简单的讲是指当广播数据充斥网络无法处理,并占用大量网络带宽,导致正常业务不能运行,甚至彻底瘫痪,这就发生了"广播 ...
- COMET —— 常识Transformer用于自动知识图构建
<COMET:Commonsense Transformers for Automatic Knowledge Graph Construction> 论文地址 论文源码 任务 目的层面 ...