public static void LoadReferences <T>(this IDbCommand dbCmd, T instance) { var modelDef = ModelDefinition <T> .Definition; var fieldDefs = modelDef.AllFieldDefinitionsArray.Where(x => x.IsReference); var pkValue = modelDef.PrimaryKey.GetValue(instance); var dialectProvider = OrmLiteConfig.DialectProvider; foreach (var fieldDef in fieldDefs) { dbCmd.Parameters.Clear(); var listInterface = fieldDef.FieldType.GetTypeWithGenericInterfaceOf(typeof(IList <>)); if (listInterface != null) { var refType = listInterface.GenericTypeArguments()[0]; var refModelDef = refType.GetModelDefinition(); var refField = GetRefFieldDef(modelDef, refModelDef, refType); var sqlFilter = dialectProvider.GetQuotedColumnName(refField.FieldName) + "={0}"; var sql = dialectProvider.ToSelectStatement(refType, sqlFilter, pkValue); var results = dbCmd.ConvertToList(refType, sql); fieldDef.SetValueFn(instance, results); } else { var refType = fieldDef.FieldType; var refModelDef = refType.GetModelDefinition(); var refSelf = GetSelfRefFieldDefIfExists(modelDef, refModelDef); var refField = refSelf == null ? GetRefFieldDef(modelDef, refModelDef, refType) : GetRefFieldDefIfExists(modelDef, refModelDef); if (refField != null) { var sqlFilter = dialectProvider.GetQuotedColumnName(refField.FieldName) + "={0}"; var sql = dialectProvider.ToSelectStatement(refType, sqlFilter, pkValue); var result = dbCmd.ConvertTo(refType, sql); fieldDef.SetValueFn(instance, result); } else if (refSelf != null) { //Load Self Table.RefTableId PK var refPkValue = refSelf.GetValue(instance); var sqlFilter = dialectProvider.GetQuotedColumnName(refModelDef.PrimaryKey.FieldName) + "={0}"; var sql = dialectProvider.ToSelectStatement(refType, sqlFilter, refPkValue); var result = dbCmd.ConvertTo(refType, sql); fieldDef.SetValueFn(instance, result); } } } }
public bool SqlProc(string procName, object inParams, int sqlCode) { IDbCommand dbCommand = DBConnection.SqlProc(procName, inParams); ExcuteProcModelData result = dbCommand.ConvertTo <ExcuteProcModelData>(); return(result.MessageId == sqlCode); }
internal static T Single <T>(this IDbCommand dbCmd, string sql, object anonType) { dbCmd.SetParameters <T>(anonType, excludeDefaults: false); return(OrmLiteUtils.IsScalar <T>() ? dbCmd.Scalar <T>(sql) : dbCmd.ConvertTo <T>(dbCmd.GetDialectProvider().ToSelectStatement(typeof(T), sql))); }
internal static T Single <T>(this IDbCommand dbCmd, string sql, IEnumerable <IDbDataParameter> sqlParams) { dbCmd.SetParameters(sqlParams); return(OrmLiteUtils.IsScalar <T>() ? dbCmd.Scalar <T>(sql) : dbCmd.ConvertTo <T>(dbCmd.GetDialectProvider().ToSelectStatement(typeof(T), sql))); }
internal static T SingleWhere <T>(this IDbCommand dbCmd, string name, object value) { if (!dbCmd.CanReuseParam <T>(name)) { SetFilter <T>(dbCmd, name, value); } ((IDbDataParameter)dbCmd.Parameters[0]).Value = value; return(dbCmd.ConvertTo <T>()); }
internal static T SingleById <T>(this IDbCommand dbCmd, object value) { if (!dbCmd.CanReuseParam <T>(ModelDefinition <T> .PrimaryKeyName)) { SetFilter <T>(dbCmd, ModelDefinition <T> .PrimaryKeyName, value); } ((IDbDataParameter)dbCmd.Parameters[0]).Value = value; return(dbCmd.ConvertTo <T>()); }
internal static T Single <T>(this IDbCommand dbCmd, string sql, object anonType) { if (IsScalar <T>()) { return(Scalar <T>(dbCmd, sql, anonType)); } dbCmd.SetParameters <T>(anonType, excludeDefaults: false); return(dbCmd.ConvertTo <T>(OrmLiteConfig.DialectProvider.ToSelectStatement(typeof(T), sql))); }
internal static T Single <T>(this IDbCommand dbCmd, object anonType) { dbCmd.SetFilters <T>(anonType, excludeDefaults: false); return(dbCmd.ConvertTo <T>()); }
internal static T SingleFmt <T>(this IDbCommand dbCmd, string filter, params object[] filterParams) { return(dbCmd.ConvertTo <T>(dbCmd.GetDialectProvider().ToSelectStatement(typeof(T), filter, filterParams))); }
internal static T SingleWhere <T>(this IDbCommand dbCmd, string name, object value) { SetFilter <T>(dbCmd, name, value); return(dbCmd.ConvertTo <T>()); }
internal static T SingleById <T>(this IDbCommand dbCmd, object value) { SetFilter <T>(dbCmd, ModelDefinition <T> .PrimaryKeyName, value); return(dbCmd.ConvertTo <T>()); }
public T SqlProcConvertTo <T>(string procName, object inParams) { IDbCommand dbCommand = DBConnection.SqlProc(procName, inParams); return(dbCommand.ConvertTo <T>()); }