public static DapperSqls GetDapperSqls(Type t) { if (!DapperSqlsDict.Keys.Contains(t.TypeHandle)) { lock (_locker) { if (!DapperSqlsDict.Keys.Contains(t.TypeHandle)) { DapperSqls sqls = DapperCommon.GetDapperSqls(t); string Fields = DapperCommon.GetFieldsStr(sqls.AllFieldList, "[", "]"); string FieldsAt = DapperCommon.GetFieldsAtStr(sqls.AllFieldList); string FieldsEq = DapperCommon.GetFieldsEqStr(sqls.AllFieldList, "[", "]"); string FieldsExtKey = DapperCommon.GetFieldsStr(sqls.ExceptKeyFieldList, "[", "]"); string FieldsAtExtKey = DapperCommon.GetFieldsAtStr(sqls.ExceptKeyFieldList); string FieldsEqExtKey = DapperCommon.GetFieldsEqStr(sqls.ExceptKeyFieldList, "[", "]"); sqls.AllFields = Fields; sqls.AllFieldsAt = FieldsAt; sqls.AllFieldsAtEq = FieldsEq; sqls.AllFieldsExceptKey = FieldsExtKey; sqls.AllFieldsAtExceptKey = FieldsAtExtKey; sqls.AllFieldsAtEqExceptKey = FieldsEqExtKey; if (!string.IsNullOrEmpty(sqls.KeyName) && sqls.IsIdentity) //有主键并且是自增 { sqls.InsertSql = string.Format("INSERT INTO [{0}]({1})VALUES({2})", sqls.TableName, FieldsExtKey, FieldsAtExtKey); sqls.InsertIdentitySql = string.Format("INSERT INTO [{0}]({1})VALUES({2})", sqls.TableName, Fields, FieldsAt); } else { sqls.InsertSql = string.Format("INSERT INTO [{0}]({1})VALUES({2})", sqls.TableName, Fields, FieldsAt); } if (!string.IsNullOrEmpty(sqls.KeyName)) //含有主键 { sqls.DeleteByIdSql = string.Format("DELETE FROM [{0}] WHERE [{1}]=@id", sqls.TableName, sqls.KeyName); sqls.DeleteByIdsSql = string.Format("DELETE FROM [{0}] WHERE [{1}] IN @ids", sqls.TableName, sqls.KeyName); sqls.GetByIdSql = string.Format("SELECT {0} FROM [{1}] WHERE [{2}]=@id", Fields, sqls.TableName, sqls.KeyName); sqls.GetByIdsSql = string.Format("SELECT {0} FROM [{1}] WHERE [{2}] IN @ids", Fields, sqls.TableName, sqls.KeyName); sqls.UpdateSql = string.Format("UPDATE [{0}] SET {1} WHERE [{2}]=@{2}", sqls.TableName, FieldsEqExtKey, sqls.KeyName); } sqls.DeleteAllSql = string.Format("DELETE FROM [{0}]", sqls.TableName); sqls.GetAllSql = string.Format("SELECT {0} FROM [{1}]", Fields, sqls.TableName); DapperSqlsDict[t.TypeHandle] = sqls; } } } return(DapperSqlsDict[t.TypeHandle]); }