Esempio n. 1
0
 /// <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));
 }
Esempio n. 2
0
 /// <summary>
 /// 通过条件得到表的记录数
 /// </summary>
 /// <param name="where"></param>
 /// <returns></returns>
 public virtual int Get_Entity_Record(WhereClip where)
 {
     return(db.From <T>().Where(where).Count());
 }
Esempio n. 3
0
        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()));
        }
Esempio n. 4
0
 /// <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);
 }
Esempio n. 5
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);
 }
Esempio n. 6
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);
 }
Esempio n. 7
0
 /// <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));
 }
Esempio n. 8
0
 /// <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));
 }
Esempio n. 9
0
 /// <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));
 }
Esempio n. 10
0
 /// <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>());
 }
Esempio n. 11
0
 /// <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));
 }
Esempio n. 12
0
 /// <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());
 }
Esempio n. 13
0
 /// <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());
 }
Esempio n. 14
0
 /// <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);
 }
Esempio n. 15
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);
 }
Esempio n. 16
0
 /// <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));
 }
Esempio n. 17
0
 /// <summary>
 /// 进行条件操作
 /// </summary>
 /// <param name="where"></param>
 /// <returns></returns>
 public TableRelation <T> Where(WhereClip where)
 {
     section.Where(where);
     return(this);
 }
Esempio n. 18
0
 /// <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));
 }
Esempio n. 19
0
 /// <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);
 }
Esempio n. 20
0
 /// <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));
 }
Esempio n. 21
0
 /// <summary>
 /// 查询是否存在记录
 /// </summary>
 /// <param name="where"></param>
 /// <returns></returns>
 public virtual bool Get_IsExist_ByWhere(WhereClip where)
 {
     return(db.From <T>()
            .Where(where)
            .Count() > 0);
 }
Esempio n. 22
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));
 }
Esempio n. 23
0
 /// <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);
 }
Esempio n. 24
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));
 }
Esempio n. 25
0
 /// <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));
 }
Esempio n. 26
0
 /// <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));
 }
Esempio n. 27
0
 /// <summary>
 /// 关联表信息
 /// </summary>
 /// <param name="table"></param>
 /// <param name="where"></param>
 public QueryCreator Join(Table table, WhereClip where)
 {
     return(Join(JoinType.LeftJoin, table, where));
 }
Esempio n. 28
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>(Table table, Field field, object value, WhereClip where)
     where T : Entity
 {
     return(Update <T>(table, new Field[] { field }, new object[] { value }, where));
 }
Esempio n. 29
0
 /// <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));
 }
Esempio n. 30
0
 /// <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));
 }