using System; using System.Collections.Generic; using System.Text; namespace Apewer.Source { /// 数据库引擎支持 ORM 访问。 public interface IDbClientOrm { /// 初始化指定类型,以创建表或增加字段。 /// 要初始化的类型。 /// 错误信息。当成功时候返回空字符串。 public string Initialize(Type model); /// 初始化指定类型,以创建表或增加字段。 /// 错误信息。当成功时候返回空字符串。 public string Initialize() where T : class, new(); /// 插入记录。 /// 要插入的记录实体。 /// 错误信息。当成功时候返回空字符串。 public string Insert(object record); /// 更新记录。 /// 要插入的记录实体。 /// 错误信息。当成功时候返回空字符串。 public string Update(IRecord record); /// 获取指定类型的主键,按 Flag 属性筛选。 /// 要查询的类型。 /// 要求目标记录具有的 Flag 属性,当指定 0 时忽略此要求。 public Result Keys(Type model, long flag = 0); /// 获取指定类型的主键,按 Flag 属性筛选。 /// 要求目标记录具有的 Flag 属性,当指定 0 时忽略此要求。 public Result Keys(long flag = 0) where T : class, IRecord, new(); /// 获取具有指定 Key 的记录,并要求记录具有指定的 Flag 属性。 /// 目标记录的类型。 /// 目标记录的主键。 /// 要求目标记录具有的 Flag 属性,当指定 0 时忽略此要求。 public Result Get(Type model, string key, long flag = 0); /// 获取具有指定 Key 的记录,并要求记录具有指定的 Flag 属性。 /// 目标记录的主键。 /// 要求目标记录具有的 Flag 属性,当指定 0 时忽略此要求。 public Result Get(string key, long flag = 0) where T : class, IRecord, new(); /// 使用指定语句查询,获取查询结果。 /// 目标记录的类型。 /// 要执行的 SQL 语句。 public Result Query(Type model, string sql); /// 使用指定语句查询,获取查询结果。 /// 要执行的 SQL 语句。 public Result Query(string sql) where T : class, new(); /// 查询所有记录。 /// 目标记录的类型。 /// 要求目标记录具有的 Flag 属性,当指定 0 时忽略此要求。 public Result Query(Type model, long flag = 0); /// 查询所有记录。 /// 要求目标记录具有的 Flag 属性,当指定 0 时忽略此要求。 public Result Query(long flag = 0) where T : class, IRecord, new(); } }