目录
一、前言
这个是由1演变出的2.第一篇就写着耍,这一篇才有东西
二、ORM框架
ORM(对象关系映射)框架是一种软件工具,用于在关系型数据库和面向对象编程语言之间建立映射关系。通过ORM框架,开发人员可以使用面向对象的方式来操作数据库,而不需要直接编写SQL语句。
常见的ORM框架包括:
-
Hibernate:Hibernate是Java平台上最流行的ORM框架之一,它提供了丰富的功能来管理对象与数据库之间的映射关系,支持多种数据库。Hibernate可以自动生成SQL语句,还提供了缓存、事务管理等功能。
-
Entity Framework:Entity Framework是微软开发的.NET平台上的ORM框架,它提供了一种强大且灵活的数据访问模型,支持Code First、Database First和Model First等多种开发模式。
-
SQLAlchemy:SQLAlchemy是Python领域内最流行的ORM框架之一,它支持多种数据库后端,并提供了丰富的查询API和关系管理功能。
-
Django ORM:Django是一个流行的Python Web框架,它内置了简单易用的ORM框架,开发人员可以通过定义模型类和字段来进行数据库操作。
-
Spring Data JPA:Spring Data是一个开发框架家族,Spring Data JPA是其子项目之一,它为Java开发人员提供了简化数据访问的解决方案。
通过使用ORM框架,开发人员可以摆脱编写大量重复性SQL语句的工作,提高开发效率和数据库操作的灵活性。同时,ORM框架也提供了对象模型与数据库模型之间的映射,使得开发者更加专注于业务逻辑的实现而非数据库操作的细节。
然后接下来,我就单纯的讲一讲EF的使用:
首先在.net中使用EF是需要下载2个包的下面是介绍怎么安装:
安装Entity Framework NuGet包:在Visual Studio中的解决方案资源管理器中,右键单击你的项目,选择 "管理 NuGet程序包"。然后搜索 "EntityFramework",选择它并点击安装。
如果你使用的是Entity Framework Core,你需要搜索并安装 "Microsoft.EntityFrameworkCore" 包,还可能需要安装特定的数据库提供程序,比如 "Microsoft.EntityFrameworkCore.SqlServer" 或 "Microsoft.EntityFrameworkCore.MySql"。
进阶、封装EF的简单方法(具体根据自己的需求去加):
这里是使用了泛型去做了一个简单的封装,主要是懒。后面不想写重复,然后这样去写他的一个性能得到了一个优化
using Entity;
using IDal;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
namespace Dal
{
/// <summary>
/// 所有Dal的父类
/// </summary>
public class BaseDal<T> : IBaseDal<T> where T : BaseEntity
{
RepositoryDbContext _dbContext;
public BaseDal(RepositoryDbContext dbContext)
{
_dbContext = dbContext;
}
/// <summary>
/// 添加
/// </summary>
/// <returns></returns>
public bool CreateEntity(T entity)
{
//_dbContext.DepartmentInfos.Add(entity);
_dbContext.Set<T>().Add(entity);
int index = _dbContext.SaveChanges();
if (index > 0)
{
return true;
}
else
{
return false;
}
}
/// <summary>
/// 真删除
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="entity"></param>
/// <returns></returns>
public bool DeleteEntity(T entity)
{
_dbContext.Set<T>().Remove(entity);
int index = _dbContext.SaveChanges();
if (index > 0)
{
return true;
}
return false;
}
/// <summary>
/// 批量真删除
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="entity"></param>
/// <returns></returns>
public bool BatchDeleteEntity(List<T> entity)
{
_dbContext.Set<T>().RemoveRange(entity);
int index = _dbContext.SaveChanges();
if (index > 0)
{
return true;
}
return false;
}
/// <summary>
/// 通过id真删除
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="id"></param>
/// <returns></returns>
public bool DeleteEntityById(string id)
{
var entity = _dbContext.Set<T>().FirstOrDefault(u => u.Id == id);
if (entity != null)
{
_dbContext.Set<T>().Remove(entity);
int index = _dbContext.SaveChanges();
if (index > 0)
{
return true;
}
return false;
}
else
{
return false;
}
}
/ <summary>
/// 获取数据集
/// </summary>
public DbSet<T> GetDbSet()
{
return _dbContext.Set<T>();
}
/// <summary>
/// 更新
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public bool UpdateEntity(T entity)
{
_dbContext.Set<T>().Update(entity);
int index = _dbContext.SaveChanges();
if (index > 0)
{
return true;
}
return false;
}
}
}
三、中间件
这里的中间件的话,我就讲一讲session
一、Session:
是一个缓存机制,存储在服务端,当客户端(浏览器)关闭时即销毁。若长时间不使用且浏览器未关闭的情况下, 默认自动销毁时间为20分钟。Session储存服务端的数据可以直接传递到客服端,有点像起了桥梁连接的作用。而利用服务端数据优点是比较便捷,代码比较少;缺点是数据容易丢失,缓存期比较短 。因此用Session的对象保存用户数据的方法效率低,对于小量的用户数据,使用Session还是一个不错的选择。
二、创建Session对象
pubice static void CreatSession(){//存Session["user"] = "MySession";//可以直接不用声明对象的形式把数据储存Session["user"]中。List<类名> listSession= new List<类名>();//创建以listSession对象的List<类名>集合。//当判断Session["listSession"]不为空的时候,声明的Session的命名 用 as的操作符转换目标类型或者转换目标类型的派生类型。if (Session["listSession"] != null) {listSession = Session["listSession"] as List<类名>;}类名 对象1 = new 类名();对象1.属性 = "getSession";listSession.Add(对象1);//Add是Session添加对象的方法。由于listSession是类名的集合,所以Add()方法添加为类名对象。
}
三、读取Session数据
public static string readSession(){//取String username = Session["user"].ToString();//读取前面声明的Session["user"]时所赋的初始值,所以此时的username = MySeessionList<类名> listSession= new List<类名>();//创建以listSession对象的List<类名>集合。类名 对象2 = new 类名();if (Session["listSession"] != null) {listSession = Session["listSession"] as List<类名>;}if(listSession != null) {对象2.属性 = listSession[0].属性; //此时的对象2.属性 = 对象1.属性 = "getSession";} return username + "and" + 对象2.属性;
}
四、输出Session值
public static void Main(string[] args){CreatSession();Console.WriteLine("Session Values is:{0}",readSession());Console.ReadLine();}