7、vs2022_CommonLib库下常用工具类封装
1、BaseModel
public class BaseModel<T> where T : class, new() { /// <summary> /// 获取上下文 /// </summary> /// <returns>EF上下文</returns> public static DemoContext Create() { DemoContext db = CallContext.GetData("db") as DemoContext; if (db == null) { db = new DemoContext(); CallContext.SetData("db", db); } return db; } /// <summary> /// 上下文 /// </summary> DemoContext db = Create(); /// <summary> /// 查询数据,IQueryable延迟加载集合,调用时才会去加载至内存,List查询后会立即加载至内存中 /// </summary> /// <param name="whereLambda">查询条件</param> /// <returns>数据集合</returns> public IQueryable<T> GetList(Expression<Func<T, bool>> whereLambda) { return db.Set<T>().Where(whereLambda); } public int Add(T entity) { db.Set<T>().Add(entity); return db.SaveChanges(); } public int Delete(int id) { //通过ID查询这条实体 T entity = db.Set<T>().Find(id); db.Set<T>().Remove(entity); return db.SaveChanges(); } public int Update(T entity) { //设置当前实体的状态为修改 db.Entry(entity).State = System.Data.Entity.EntityState.Modified; return db.SaveChanges(); } }
switch case语句基本语法
switch (表达式) { case 值1: 语句1; break; case 值2: 语句2; break; 。。。 default: 语句n; break; }
switch()中的变量可以是整形、string、bool、char、枚举或相应可以为null的类型,必须有一个定值。
每个case标签后是常量表达式的值,不必连续,也不必按特定顺序排列,但不能相同,否则会出现错误。
default标签可选,意思是其余的结果。
break语句的作用是在case与case之间中断程序。
switch…case与if…lse区别:
1、都可以用来实现多路分支。
2、If eles实现两路、三路分支比较方便,switch…case实现三路以上分支结构更清晰,代码可读性更强。
3、因为case语句后面必须是定值,所以不适合做范围的判断。
if…else 语句
if(boolean_expression) { /* 如果布尔表达式为真将执行的语句 */ } else { /* 如果布尔表达式为假将执行的语句 */ }
if…else if…else 语句
if(boolean_expression 1) { /* 当布尔表达式 1 为真时执行 */ } else if( boolean_expression 2) { /* 当布尔表达式 2 为真时执行 */ } else if( boolean_expression 3) { /* 当布尔表达式 3 为真时执行 */ } else { /* 当上面条件都不为真时执行 */ }
else 可有可没有,多少个都无所谓
,
else 可以没有,但是只要有,就只能有一个
,就一定是在判断结构的最后