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登录授 ...
随机推荐
- 从实体框架核心开始:构建一个ASP。NET Core应用程序与Web API和代码优先开发
下载StudentApplication.Web.zip - 599.5 KB 下载StudentApplication.API.zip - 11.5 KB 介绍 在上一篇文章中,我们了解了实体框架的 ...
- DBA提交脚步规范
工作中需要走脚步流程,申请修改数据库,总结一些常用的语句:)提交时注明为DDL/DML_需求号_日期(各公司标准不一样)//修改字段长度使用;alter table t_task modify tas ...
- 分布式系统中的CAP、ACID、BASE概念
目录 CAP ACID BASE CAP 分布式系统中,这三个特性只能满足其中两个. 一致性(Consistency):分布式中一致性又分强一致性和弱一致性,强一致性主浊任何时刻任何节点看到的数据都是 ...
- 扫描仪扫描文件处理-ABBYY生成小体积黑白二值化PDF
禁止所有预处理选项: PDF保存选项: 保存提示(选择"保存为仅图像PDF"):
- centos8安装RabbitMQ
一.安装erlang # 添加仓库 curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh ...
- HTML <big> 标签
HTML <big> 标签 什么是<big> 标签? <big> 标签呈现大号字体效果. 使用 <big> 标签可以很容易地放大字体.这简直不能再简单了 ...
- JavaSE学习笔记01注释、标识符与基本类型
1. HelloWorld 编写代码 public class Hello{ public static void main(String[] args){ System.out.println(&q ...
- Helium文档7-WebUI自动化-highlight高亮显示元素
前言 highlight方法是通过红框高亮显示元素,在调试中有很大优势,可以清楚看到定位的元素位置 入参介绍 def highlight(element): """ ...
- HashMap循环中Remove带来的问题
HashMap在循环中执行remove操作会报错,引发了并发修改异常. 解决办法很多: 1.复制一个Map,在Map副本中循环,Map本体执行remove方法. 2.使用迭代器移除当前迭代元素,ite ...
- 一篇文章 图解Python 玩转Python
0 Python 解释器:1.Python数据结构:2.变量与运算符3 Python 流程控制 4 Python 文件处理5 python 输入输出6 Python 异常7 Python 函数和模块8 ...