/// <summary> /// 是否存在指定主键的记录 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="pkValues"></param> /// <returns></returns> public bool Exists <T>(Table table, params object[] pkValues) where T : Entity { WhereClip where = DataUtils.GetPkWhere <T>(table, pkValues); return(Exists <T>(table, where)); }
/// <summary> /// 通过条件得到表的记录数 /// </summary> /// <param name="where"></param> /// <returns></returns> public virtual int Get_Entity_Record(WhereClip where) { return(db.From <T>().Where(where).Count()); }
internal DbCommand CreateUpdate <T>(Table table, List <FieldValue> fvlist, WhereClip where) where T : Entity { T entity = DataUtils.CreateInstance <T>(); if (entity.GetReadOnly()) { throw new MySoftException("只读实体" + typeof(T).Name + "只能用于查询!"); } if ((object)where == null) { throw new MySoftException("更新条件不能为null!"); } //移除缓存 RemoveCache(typeof(T).Name); string tableName = table == null?entity.GetTable().Name : table.Name; List <SQLParameter> plist = new List <SQLParameter>(); StringBuilder sb = new StringBuilder(); sb.Append("update " + tableName + " set "); fvlist.ForEach(fv => { if (fv.IsPrimaryKey || fv.IsIdentity) { return; } if (fv.IsChanged) { if (CheckValue(fv.Value)) { sb.Append(fv.Field.At((string)null).Name + " = " + DataUtils.FormatValue(fv.Value)); } else { SQLParameter p = null; if (CheckStruct(fv.Value)) { p = CreateOrmParameter(DataUtils.FormatValue(fv.Value)); } else { p = CreateOrmParameter(fv.Value); } sb.Append(fv.Field.At((string)null).Name + " = " + p.Name); plist.Add(p); } sb.Append(","); } }); sb.Remove(sb.Length - 1, 1); if (!DataUtils.IsNullOrEmpty(where)) { sb.Append(" where " + where.ToString()); plist.AddRange(where.Parameters); } return(CreateSqlCommand(sb.ToString(), plist.ToArray())); }
/// <summary> /// 通过多个条件更新对象 /// </summary> /// <param name="fields"></param> /// <param name="values"></param> /// <param name="where"></param> /// <returns></returns> public virtual bool Update_Entity_byWhere(Field[] fields, object[] values, WhereClip where) { return(db.Update <T>(fields, values, where) > 0); }
/// <summary> /// 通过条件删除对象 如果批量删除可以传入条件 where = T.ID.in(obj[]) /// </summary> /// <param name="where"></param> /// <returns></returns> public virtual bool Delete_Entity(WhereClip where) { return(db.Delete <T>(where) > 0); }
/// <summary> /// 内关联 /// </summary> /// <param name="table"></param> /// <param name="onWhere"></param> /// <returns></returns> public TableRelation <T> InnerJoin <TJoin>(Table table, WhereClip onWhere) where TJoin : Entity { section.InnerJoin <TJoin>(table, onWhere); return(this); }
/// <summary> /// 插入或更新 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="fvs"></param> /// <param name="where"></param> /// <returns></returns> public int InsertOrUpdate <T>(FieldValue[] fvs, WhereClip where) where T : Entity { return(InsertOrUpdate <T>(null, fvs, where)); }
/// <summary> /// 是否存在指定条件的记录 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="where"></param> /// <returns></returns> public bool Exists <T>(WhereClip where) where T : Entity { return(Exists <T>(null, where)); }
/// <summary> /// 按条件获取记录条数 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="where"></param> /// <returns></returns> public int Count <T>(WhereClip where) where T : Entity { return(Count <T>(null, where)); }
/// <summary> /// 按条件进行Min操作 /// </summary> /// <typeparam name="T"></typeparam> /// <typeparam name="TResult"></typeparam> /// <param name="field"></param> /// <param name="where"></param> /// <returns></returns> public TResult Min <T, TResult>(Table table, Field field, WhereClip where) where T : Entity { return(From <T>(table).Select(field.Min()).Where(where).ToScalar <TResult>()); }
/// <summary> /// 按条件获取一个实体 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="where"></param> /// <returns></returns> public T Single <T>(WhereClip where) where T : Entity { return(Single <T>(null, where)); }
/// <summary> /// 按条件进行Max操作 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="field"></param> /// <param name="where"></param> /// <returns></returns> public object Max <T>(Table table, Field field, WhereClip where) where T : Entity { return(From <T>(table).Select(field.Max()).Where(where).ToScalar()); }
/// <summary> /// 按条件获取记录条数 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="where"></param> /// <returns></returns> public int Count <T>(Table table, WhereClip where) where T : Entity { return(From <T>(table).Where(where).Count()); }
/// <summary> /// 是否存在指定条件的记录 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="where"></param> /// <returns></returns> public bool Exists <T>(Table table, WhereClip where) where T : Entity { return(Count <T>(table, where) > 0); }
/// <summary> /// 内关联 /// </summary> /// <param name="table"></param> /// <param name="onWhere"></param> /// <returns></returns> public TableRelation <T> InnerJoin <TJoin>(string aliasName, WhereClip onWhere) where TJoin : Entity { section.InnerJoin <TJoin>(aliasName, onWhere); return(this); }
/// <summary> /// 按条件进行Min操作 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="field"></param> /// <param name="where"></param> /// <returns></returns> public object Min <T>(Field field, WhereClip where) where T : Entity { return(Min <T>(null, field, where)); }
/// <summary> /// 进行条件操作 /// </summary> /// <param name="where"></param> /// <returns></returns> public TableRelation <T> Where(WhereClip where) { section.Where(where); return(this); }
/// <summary> /// 按条件进行Min操作 /// </summary> /// <typeparam name="T"></typeparam> /// <typeparam name="TResult"></typeparam> /// <param name="field"></param> /// <param name="where"></param> /// <returns></returns> public TResult Min <T, TResult>(Field field, WhereClip where) where T : Entity { return(Min <T, TResult>(null, field, where)); }
/// <summary> /// 右关联 /// </summary> /// <param name="table"></param> /// <param name="onWhere"></param> /// <returns></returns> public TableRelation <T> RightJoin <TJoin>(WhereClip onWhere) where TJoin : Entity { section.RightJoin <TJoin>(onWhere); return(this); }
/// <summary> /// 按条件删除指定记录 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="where"></param> /// <returns></returns> public int Delete <T>(WhereClip where) where T : Entity { return(Delete <T>(null, where)); }
/// <summary> /// 查询是否存在记录 /// </summary> /// <param name="where"></param> /// <returns></returns> public virtual bool Get_IsExist_ByWhere(WhereClip where) { return(db.From <T>() .Where(where) .Count() > 0); }
/// <summary> /// 按条件更新指定记录 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="field"></param> /// <param name="value"></param> /// <param name="where"></param> /// <returns></returns> public int Update <T>(Field field, object value, WhereClip where) where T : Entity { return(Update <T>(null, field, value, where)); }
/// <summary> /// 通过单个条件更新对象 /// </summary> /// <param name="fields"></param> /// <param name="values"></param> /// <param name="where"></param> /// <returns></returns> public virtual bool Update_Entity_byWhere(Field filed, object value, WhereClip where) { return(db.Update <T>(filed, value, where) > 0); }
/// <summary> /// 按条件更新指定记录 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="fields"></param> /// <param name="values"></param> /// <param name="where"></param> /// <returns></returns> public int Update <T>(Field[] fields, object[] values, WhereClip where) where T : Entity { return(Update <T>(null, fields, values, where)); }
/// <summary> /// 分页 返回Datatable /// </summary> /// <param name="currentPageindex"></param> /// <param name="pageSize"></param> /// <param name="where"></param> /// <param name="orderby"></param> /// <param name="record">总记录</param> /// <param name="fields"></param> /// <returns></returns> public virtual DataTable Get_Entity_byPage_ToTable(int currentPageindex, int pageSize, WhereClip where, OrderByClip orderby, out int record, params Field[] fields) { record = Get_Entity_Record(where); return(Get_Entity_byPage_ToTable(currentPageindex, pageSize, where, orderby, fields)); }
/// <summary> /// 按条件删除指定记录 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="where"></param> /// <returns></returns> public int Delete <T>(Table table, WhereClip where) where T : Entity { return(dbProvider.Delete <T>(table, where, this)); }
/// <summary> /// 关联表信息 /// </summary> /// <param name="table"></param> /// <param name="where"></param> public QueryCreator Join(Table table, WhereClip where) { return(Join(JoinType.LeftJoin, table, where)); }
/// <summary> /// 按条件更新指定记录 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="field"></param> /// <param name="value"></param> /// <param name="where"></param> /// <returns></returns> public int Update <T>(Table table, Field field, object value, WhereClip where) where T : Entity { return(Update <T>(table, new Field[] { field }, new object[] { value }, where)); }
/// <summary> /// 按主键删除指定记录 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="pkValues"></param> /// <returns></returns> public int Delete <T>(Table table, params object[] pkValues) where T : Entity { WhereClip where = DataUtils.GetPkWhere <T>(table, pkValues); return(dbProvider.Delete <T>(table, where, dbTrans)); }
/// <summary> /// 是否存在指定的实体,按主键匹配 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="entity"></param> /// <returns></returns> public bool Exists <T>(Table table, T entity) where T : Entity { WhereClip where = DataUtils.GetPkWhere <T>(table, entity); return(Exists <T>(table, where)); }