forked from xuxiaowei007/FoxOne
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathISqlSource.cs
51 lines (46 loc) · 1.95 KB
/
ISqlSource.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
namespace FoxOne.Data
{
public interface ISqlSource
{
Dictionary<string, ISqlStatement> Sqls { get; }
/// <summary>
/// 判断Sql语句的唯一Key是否有效
/// </summary>
/// <remarks>
/// 默认规则:key不能包含空格、逗号、括号
/// </remarks>
bool IsValidKey(string key);
/// <summary>
/// 添加一个SQL语句
/// </summary>
/// <param name="key"></param>
/// <param name="statement"></param>
/// <param name="overwite"></param>
/// <returns></returns>
bool Add(string key, ISqlStatement statement, bool overwite = true);
/// <summary>
/// 根据唯一Key查找返回一个经过Parse的SQL语句
/// </summary>
/// <param name="key">通过IsValidKey检查的唯一标识一条SQL语句的字符串</param>
/// <returns>没有对应的语句返回null</returns>
ISqlStatement Find(string key);
/// <summary>
/// 根据唯一Key和定义的DaoProvider名称(表示不同的数据库类型)查找返回一个经过Parse的SQL语句
/// </summary>
/// <param name="key">通过IsValidKey检查的唯一标识一条SQL语句的字符串</param>
/// <param name="daoProviderName">对应的DaoProvider的名称,如SqlServer</param>
/// <returns>没有对应的语句返回null</returns>
ISqlStatement Find(string key, string daoProviderName);
/// <summary>
/// 加载单个assembly里的sql配置信息到内存中
/// </summary>
/// <param name="assembly">assembly对象</param>
/// <param name="overrideSql">是否覆盖已有Key的sql</param>
void LoadSqlsFromAssembly(Assembly assembly, bool overrideSql);
}
}