You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
4.1 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Text;
  5. namespace Apewer.Source
  6. {
  7. /// <summary>数据库客户端。</summary>
  8. public interface IDbOrm
  9. {
  10. #region Orm
  11. /// <summary>初始化指定类型,以创建表或增加字段。</summary>
  12. /// <param name="model">要初始化的类型。</param>
  13. /// <returns>错误信息。当成功时候返回空字符串。</returns>
  14. public string Initialize(Type model);
  15. /// <summary>初始化指定类型,以创建表或增加字段。</summary>
  16. /// <returns>错误信息。当成功时候返回空字符串。</returns>
  17. public string Initialize<T>() where T : class, new();
  18. /// <summary>插入记录。</summary>
  19. /// <param name="record">要插入的记录实体。</param>
  20. /// <param name="table">插入到指定表。当不指定时,由 record 类型决定。</param>
  21. /// <returns>错误信息。当成功时候返回空字符串。</returns>
  22. public string Insert(object record, string table = null);
  23. /// <summary>更新记录。</summary>
  24. /// <param name="record">要插入的记录实体。</param>
  25. /// <param name="table">插入到指定表。当不指定时,由 record 类型决定。</param>
  26. /// <returns>错误信息。当成功时候返回空字符串。</returns>
  27. public string Update(IRecord record, string table = null);
  28. /// <summary>获取指定类型的主键,按 Flag 属性筛选。</summary>
  29. /// <param name="model">要查询的类型。</param>
  30. /// <param name="flag">要求目标记录具有的 Flag 属性,当指定 0 时忽略此要求。</param>
  31. public Result<string[]> Keys(Type model, long flag = 0);
  32. /// <summary>获取指定类型的主键,按 Flag 属性筛选。</summary>
  33. /// <param name="flag">要求目标记录具有的 Flag 属性,当指定 0 时忽略此要求。</param>
  34. public Result<string[]> Keys<T>(long flag = 0) where T : class, IRecord, new();
  35. /// <summary>获取具有指定 Key 的记录,并要求记录具有指定的 Flag 属性。</summary>
  36. /// <param name="model">目标记录的类型。</param>
  37. /// <param name="key">目标记录的主键。</param>
  38. /// <param name="flag">要求目标记录具有的 Flag 属性,当指定 0 时忽略此要求。</param>
  39. public Result<object> Get(Type model, string key, long flag = 0);
  40. /// <summary>获取具有指定 Key 的记录,并要求记录具有指定的 Flag 属性。</summary>
  41. /// <param name="key">目标记录的主键。</param>
  42. /// <param name="flag">要求目标记录具有的 Flag 属性,当指定 0 时忽略此要求。</param>
  43. public Result<T> Get<T>(string key, long flag = 0) where T : class, IRecord, new();
  44. /// <summary>使用指定语句查询,获取查询结果。</summary>
  45. /// <param name="model">目标记录的类型。</param>
  46. /// <param name="sql">要执行的 SQL 语句。</param>
  47. /// <param name="parameters">为 SQL 命令提供参数。</param>
  48. public Result<object[]> Query(Type model, string sql, IEnumerable<IDataParameter> parameters = null);
  49. /// <summary>使用指定语句查询,获取查询结果。</summary>
  50. /// <param name="sql">要执行的 SQL 语句。</param>
  51. /// <param name="parameters">为 SQL 命令提供参数。</param>
  52. public Result<T[]> Query<T>(string sql, IEnumerable<IDataParameter> parameters = null) where T : class, new();
  53. /// <summary>查询所有记录。</summary>
  54. /// <param name="model">目标记录的类型。</param>
  55. /// <param name="flag">要求目标记录具有的 Flag 属性,当指定 0 时忽略此要求。</param>
  56. public Result<object[]> Query(Type model, long flag = 0);
  57. /// <summary>查询所有记录。</summary>
  58. /// <param name="flag">要求目标记录具有的 Flag 属性,当指定 0 时忽略此要求。</param>
  59. public Result<T[]> Query<T>(long flag = 0) where T : class, IRecord, new();
  60. #endregion
  61. }
  62. }