Entity Framework Core
Entity Framework CoreEntity Framework Core(简称EF Core)是.Net Core中的ORM框架,它可以让开发人员以面向对象的方式进行数据库的操作,从而大大的提升了开发的效率。
1、什么是ORM?ORM(object relational mapping,对象关系映射).
对象:指的就是C#中的对象,而“关系”指的就是关系数据库,“映射”:指的就是在关系数据库和c#对象之间搭建一座桥梁,能够让对象模型与关系数据库的表结构之间进行相互转换。我们知道,在.Net中可以通过Ado.net链接数据库然后执行SQL语句来从操作数据库中的数据。而ORM可以让我们通过操作C#对象的方式来操作数据库,比如,使用ORM,可以通过创建C#对象的方式把数据插入到数据库中,而不需要编写Insert语句。如下伪代码所示:
12UserInfo userInfo = new UserInfo(){UserName="laowang",Password = "123"};orm.Save(userInfo);
...
日志系统
日志系统1、什么是日志日志(logging)是程序运行中的“黑匣子”,在程序出现问题以后,我们可以通过分析日志来查找问题。
在.Net core中日志可以被记录到控制台,同时还可以使用第三方提供的程序将日志记录到文件,日志服务器等。
日志的级别:
NLog,Log4Net
123456Critical:最高级别,生死攸关,系统即将崩溃。Error:错误,优先级别仅次于Critial,例如:数据库链接失败Warning:警告,有可能会出现问题,但不一定会出现问题。Information:用于跟踪应用程序的常规流Debug:表示在开发和调试过程中短期有用的信息Trace:最详细的日志,可能包含敏感信息,不建议在生产环境中使用
级别的使用情况,可以根据个人的具体情况来确定使用。
例如:系统正在链接数据库,可以使用Information,记录链接这一过程,假设这里我们最多链接3次,但是第一次没有链接成功,这里可以使用Warning,表示可能会出现问题,如果最后一次链接也没有成功,可以使用Error,表示数据库彻底链接失败.
2、日志的基本使用在这一小结中,我们看一下怎样将日志输出到控制台中。 ...
配置系统
配置系统在专业的软件项目中,一些配置项的值应该是可以修改的,我们不应该把这些值硬编码到代码中,.NET Core中提供了非常强大的配置系统以简化配置相关代码的编写方法。
1、配置系统的基本使用在传统软件开发中,我们一般把数据库连接字符串等配置项放到配置文件中,比如.NET Framework中的Web.config文件,这样如果需要修改程序连接的数据库,我们只要修改配置文件就可以了。
在.Net core中不推荐使用Web.config了。
但是在.Net core中的配置系统支持非常丰富的配置方式,例如文件配置(JSON,XML,INI等),注册表,环境变量,命令行等。
.Net core中读取配置文件中的内容,我们可以通过IConfigurationRoot读取配置信息。
下面来看一下基本的使用。
首先,在项目的跟目录下面添加一个JSON文件,如文件名为config.json,该文件中的内容如下所示:
1234567{ "name": "laowang", "proxy": { "a ...
依赖注入
依赖注入一、依赖注入与控制反转是什么控制反转(inversion of control,IoC)是设计模式中非常重要的思想,而依赖注入(dependency injection,DI)是控制反转思想的一种重要的实现方式
IOC:控制反转,是一个理论,概念,思想。描述的:把对象的创建,赋值,管理工作都交给代码之外的容器实现,也就是对象的创建是有其它外部资源完成
控制:创建对象,对象的属性赋值,对象之间的关系管理。
反转:把原来的开发人员管理,创建对象的权限转移给代码之外的容器实现。由容器代替开发人员管理对象。创建对象,给属性赋值。
在传统的软件开发中,代码依赖的对象都是由调用者自己编写代码进行创建和组装的.
如下代码:
12var connStr = ConfigurationManager.ConnectionStrings["connStr1"] ConnectionString;SqlConnection conn = new SqlConnection(connStr);
以上的代码是数据库的链接代码,通常我们都会写到一个配置文件中。
这里我们自己获取配置文 ...
Linq
1、LinqLinq是.net core中提供的一种简化的数据查询的技术。使用Linq,可以实现几行代码就可以完成复杂的数据查询。
Linq不仅可以对普通的.Net集合进行查询,而且在Entiy Framework Core 中也被广泛的使用,所以必须熟练掌握``Linq
一、 Lambda表达式1、委托复习Lambda表达式是C#中的语法,Lambda表达式在LINQ、ASP.NET Core等很多场合都用得非常多.
要理解Lambda表达式,先要说一下委托。
委托是一种可以指向方法的类型。
如下面的代码所示:
1234567891011121314151617MyDelegate d1 = SayEnglish;MyDelegate d2 = SayChinese;string age1 = d1(18);string age2 = d2(20);Console.WriteLine(age1);Console.WriteLine(age2);static string SayEnglish(int age){ return $"My Age is { ...
面试必问知识点提前预习
委托、事件、反射、面向对象、设计模式
索引、视图、存储过程、触发器、SQL语句(笔试题)
主键和外键
本篇主要写增删改查代码和主键、外键的设置
实现了student和score表的创建、添加、删除、修改和查找数据
学生包含成绩(成绩是属于学生的),因此学生是主键、成绩是外键
这样就设置好了主键外键
还有一个重要步骤–设置级联
更新规则和删除规则都要设置级联
栗子 - 假如说学生有一个classid表示学生所属班级student和class之间设置了级联规则,则在删除classid为1的班级时,classid为1的学生也被删除了
这是设置了主键外键以后,无法随意插入数据,必须与主键sid相关联
数据库学习笔记
#Day01 2024.05.28
今日学习知识点
安装SQLServer数据库
学会增删改查
各种约束和主键、外键关系
#Day02 2024.05.29
今日知识点
各种约束的代码表示
SQL语句练习
各种约束的代码表示12345678910111213141516171819202122232425select * from scoreselect * from studentselect * from teacherinsert into teacher(tsex,tage,tname) values('男',190,'老张')insert into teacher(tsex,tage,tname) values('男',19,'老王')insert into teacher(tsex,tage,tname) values('男',78,'老赵')insert into teacher(tsex,tage,tname) values( ...
背包问题
01背包问题有 𝑁 件物品和一个容量是 𝑉 的背包。每件物品只能使用一次。
第 𝑖 件物品的体积是 𝑣𝑖,价值是 𝑤𝑖。
求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。
输入格式第一行两个整数𝑁,𝑉,用空格隔开,分别表示物品数量和背包容积。
接下来有 𝑁 行,每行两个整数 𝑣𝑖,𝑤𝑖,用空格隔开,分别表示第 i𝑖 件物品的体积和价值。
输出格式输出一个整数,表示最大价值。
数据范围0<𝑁,𝑉≤10000<𝑣𝑖,𝑤𝑖≤1000
输入样例123454 51 22 43 44 5
输出样例:18
Solution
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162#include <iostream>#include <algorithm>#include <cmath>#inc ...
C#基础班学习笔记
#Day1 2024.04.16ctrl + k + c //注释(可多行
ctrl + k + u //取消注释
ctrl + k + d //快速对齐
ctrl + l //删除行
123456789101112131415161718192021222324252627282930313233343536373839using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace _01_project{ internal class Program { static void Main(string[] args) { string name = "战马"; int c ...