public static T Select <T>(this DbAccessor db, object objIdParameters) { var tableMapping = new TableMapping(typeof(T)); ISqlBuilder sqlBuilder = new DefaultSqlBuilder(tableMapping); #region 处理参数为基础类型,即直接为主键的值 if (objIdParameters.GetType() == typeof(string) || objIdParameters.GetType().GetTypeInfo().IsPrimitive) { var dicParam = new Dictionary <string, object>(); var keyColumns = tableMapping.GetKeyColumns(); if (keyColumns.Count == 0) { throw new Exceptions.EntityException("实体没有设置主键!"); } string keyColumnName = keyColumns[0].ColumnName; dicParam.Add(keyColumnName, objIdParameters); objIdParameters = dicParam; } #endregion return(db.QueryEntity <T>(sqlBuilder.BuildSelect(), objIdParameters)); }
public void TestDefaultSqlBuilder() { DefaultSqlBuilder builder = new DefaultSqlBuilder(new TableMapping(typeof(SysProduct))); Console.WriteLine(builder.BuildSelect()); }
public static T Select <T>(this DbAccessor db, object objIdParameters) { ISqlBuilder sqlBuilder = new DefaultSqlBuilder(new TableMapping(typeof(T))); return(db.QueryEntity <T>(sqlBuilder.BuildSelect(), objIdParameters)); }