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登录授 ...
随机推荐
- PHP的学习(提前学习了,业余爱好) (一)
一个函数一个函数地堆 strstr()函数 在本地测试的时候,代码与显示如下 1.代码: <?php echo strstr("I love Shanghai!123",&q ...
- Makefile常用函数(转)
一.字符串处理函数 1.$(subst FROM,TO,TEXT) 函数名称:字符串替换函数-subst. 函数功能:把字串"TEXT"中的"FROM"字符替换 ...
- 【转】Linux-CentOS7设置程序开启自启步骤!
链接:https://blog.csdn.net/wang123459/article/details/79063703
- cmake引入三方库
目录结构 . |-- cmake | |-- CompilerSettings.cmake | |-- Options.cmake | `-- ProjectJsonCpp.cmake |-- CMa ...
- 【C语言C++编程入门】程序的可读性和函数的调用!
一个简单程序的结构 你已经看过一个具体的例子,下面可以了解一些 C程序的基本规则了. 程序由一个或多个函数组成,其中一定有一个名为 main()的函数.函数的描述由函数头和函数体组成.函数头包括预处理 ...
- 【树形结构】51nod 1766 树上的最远点对
题目内容 \(n\)个点被\(n−1\)条边连接成了一颗树,边有权值\(w_i\).有\(q\)个询问,给出\([a,b]\)和\([c,d]\)两个区间,表示点的标号请你求出两个区间内各选一点之间的 ...
- spring boot:shardingsphere+druid多数据源整合seata分布式事务(spring boot 2.3.3)
一,为什么要给shardingsphere配置多数据源? 1,shardingjdbc默认接管了所有的数据源, 如果我们有多个非分表的库时,则最多只能设置一个为默认数据库, 其他的非分表数据库不能访问 ...
- ImageMagick:用identify检查图片是否完整?(jpg/gif/png图片是否损坏)
一,常用图片格式的结束标志是什么? 1,Jpg格式的文件在16进制中的表示是以 ff d9 两个字节结尾 2, gif格式的文件,结尾是 3b 3, png格式的文件,结尾是 00 00 00 ...
- Linux用户和组管理命令-切换用户su
切换用户或以其他用户身份执行命令 su: 即 switch user,命令可以切换用户身份,并且以指定用户的身份执行命令 格式: su [options...] [-] [user [args...] ...
- MySQL数据库基础-3-SQL 基本概念
SQL 基本概念 约束:constraint,表中的数据要遵守的限制 主键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行:必须提供数据,即NOT NULL,一个表只能有一个 惟一键:一个 ...