C# 클래스 FrameDAL.Dialect.BaseDialect

Author: Vincent Lau. 数据库方言类的基类,此类实现了一些通用的方法,通过此类获得的SQL具有跨数据的特性, 因为无法确定所使用的数据库,所以此类只能生成一些通用的SQL,若想针对不同的数据库进行 定制与优化,应写一个具体的方言类继承此类或直接实现IDialect接口。
상속: IDialect
파일 보기 프로젝트 열기: vincentlauvlwj/FrameDAL

공개 메소드들

메소드 설명
GetAddRelationSql ( PropertyInfo manyToManyProp ) : string
GetCascadeDeleteSql ( PropertyInfo oneToManyProp ) : string
GetCheckExistSql ( Type type ) : string
GetDeleteItemSql ( PropertyInfo oneToManyProp, int countLeft ) : string
GetDeleteRelationsSql ( PropertyInfo manyToManyProp ) : string
GetDeleteSql ( Type type ) : string

获得实体类对应的delete sql

GetGeneratedKeySql ( string seqName ) : string

获得一条SQL,该SQL从数据库中查询最近一次插入操作生成的主键,此方法由子类实现

GetInsertSql ( Type type ) : string

获得实体类对应的表的insert sql

GetLoadColumnPropertySql ( PropertyInfo prop ) : string
GetLoadManyToManyPropertySql ( PropertyInfo prop, bool enableLazy, string>.Dictionary &resultMap ) : string
GetLoadManyToOnePropertySql ( PropertyInfo prop, bool enableLazy, string>.Dictionary &resultMap ) : string
GetLoadOneToManyPropertySql ( PropertyInfo prop, bool enableLazy, string>.Dictionary &resultMap ) : string
GetPagingSql ( string sqlText, int firstResult, int pageSize ) : string

执行查询之前,对SQL命令进行预处理,此方法由子类实现

GetSelectSql ( Type type, bool enableLazy, string>.Dictionary &resultMap, string where = null ) : string

获得实体类对应的select sql

GetUpdateForeignKeySql ( PropertyInfo oneToManyProp, int countLeft ) : string
GetUpdateSql ( Type type ) : string

获得实体类对应的update sql

보호된 메소드들

메소드 설명
AppendSelectedColumns ( StringBuilder sb, Type type, bool enableLazy, string>.Dictionary resultMap, string prefix ) : void

비공개 메소드들

메소드 설명
GetSelectFromPart ( PropertyInfo prop, string>.Dictionary resultMap, bool flag ) : string

메소드 상세

AppendSelectedColumns() 보호된 메소드

protected AppendSelectedColumns ( StringBuilder sb, Type type, bool enableLazy, string>.Dictionary resultMap, string prefix ) : void
sb StringBuilder
type System.Type
enableLazy bool
resultMap string>.Dictionary
prefix string
리턴 void

GetAddRelationSql() 공개 메소드

public GetAddRelationSql ( PropertyInfo manyToManyProp ) : string
manyToManyProp System.Reflection.PropertyInfo
리턴 string

GetCascadeDeleteSql() 공개 메소드

public GetCascadeDeleteSql ( PropertyInfo oneToManyProp ) : string
oneToManyProp System.Reflection.PropertyInfo
리턴 string

GetCheckExistSql() 공개 메소드

public GetCheckExistSql ( Type type ) : string
type System.Type
리턴 string

GetDeleteItemSql() 공개 메소드

public GetDeleteItemSql ( PropertyInfo oneToManyProp, int countLeft ) : string
oneToManyProp System.Reflection.PropertyInfo
countLeft int
리턴 string

GetDeleteRelationsSql() 공개 메소드

public GetDeleteRelationsSql ( PropertyInfo manyToManyProp ) : string
manyToManyProp System.Reflection.PropertyInfo
리턴 string

GetDeleteSql() 공개 메소드

获得实体类对应的delete sql
type为null 该类没有添加Table特性,或者Table.Name属性为空或空白字符串
public GetDeleteSql ( Type type ) : string
type System.Type 实体类
리턴 string

GetGeneratedKeySql() 공개 추상적인 메소드

获得一条SQL,该SQL从数据库中查询最近一次插入操作生成的主键,此方法由子类实现
public abstract GetGeneratedKeySql ( string seqName ) : string
seqName string 生成主键的序列,如果此方法的实现不需要此参数,可忽略
리턴 string

GetInsertSql() 공개 메소드

获得实体类对应的表的insert sql
type为null 该类没有添加Table特性,或者Table.Name属性为空或空白字符串 该类中没有任何公开属性
public GetInsertSql ( Type type ) : string
type System.Type 实体类
리턴 string

GetLoadColumnPropertySql() 공개 메소드

public GetLoadColumnPropertySql ( PropertyInfo prop ) : string
prop System.Reflection.PropertyInfo
리턴 string

GetLoadManyToManyPropertySql() 공개 메소드

public GetLoadManyToManyPropertySql ( PropertyInfo prop, bool enableLazy, string>.Dictionary &resultMap ) : string
prop System.Reflection.PropertyInfo
enableLazy bool
resultMap string>.Dictionary
리턴 string

GetLoadManyToOnePropertySql() 공개 메소드

public GetLoadManyToOnePropertySql ( PropertyInfo prop, bool enableLazy, string>.Dictionary &resultMap ) : string
prop System.Reflection.PropertyInfo
enableLazy bool
resultMap string>.Dictionary
리턴 string

GetLoadOneToManyPropertySql() 공개 메소드

public GetLoadOneToManyPropertySql ( PropertyInfo prop, bool enableLazy, string>.Dictionary &resultMap ) : string
prop System.Reflection.PropertyInfo
enableLazy bool
resultMap string>.Dictionary
리턴 string

GetPagingSql() 공개 추상적인 메소드

执行查询之前,对SQL命令进行预处理,此方法由子类实现
public abstract GetPagingSql ( string sqlText, int firstResult, int pageSize ) : string
sqlText string 要进行预处理的SQL
firstResult int 要返回的第一条结果的索引,该索引从0开始
pageSize int 返回的结果数量,若为0,则返回所有结果,不进行分页查询
리턴 string

GetSelectSql() 공개 메소드

获得实体类对应的select sql
type为null 实体类映射错误
public GetSelectSql ( Type type, bool enableLazy, string>.Dictionary &resultMap, string where = null ) : string
type System.Type 实体类
enableLazy bool
resultMap string>.Dictionary
where string
리턴 string

GetUpdateForeignKeySql() 공개 메소드

public GetUpdateForeignKeySql ( PropertyInfo oneToManyProp, int countLeft ) : string
oneToManyProp System.Reflection.PropertyInfo
countLeft int
리턴 string

GetUpdateSql() 공개 메소드

获得实体类对应的update sql
type为null 实体类映射错误
public GetUpdateSql ( Type type ) : string
type System.Type 实体类
리턴 string