public override bool LoadByReference(params object[] param) { bool result = false; Type thisType = this.GetType(); var queryStatement = ObjectMapper.GetSelectQueryStatement(thisType); Dictionary<string, object> prms; queryStatement.ConcatClauses(GetObjectByFieldCondition(this.GetType(), out prms, param)); BaseCommand command = new Query(queryStatement.ToString()); foreach (string key in prms.Keys) { command.Add(key, prms[key]); } DataRow row = command.ExecDataRow(); if (row != null) { ReadFromRow(row); result = true; } return result; }
/// <summary> /// Загружает объект по заданному набору имен полей и значениям /// </summary> /// <param name="field_name"></param> /// <param name="value"></param> /// <returns>Строку данных, если объект найден и null, если нет</returns> protected DataRow GetObjectByField(params object[] param) { Type thisType = this.GetType(); var queryStatement = ObjectMapper.GetSelectQueryStatement(thisType); Dictionary<string, object> prms; queryStatement.ConcatClauses(GetObjectByFieldCondition(this.GetType(), out prms, param)); BaseCommand command = new Query(queryStatement.ToString()); foreach (string key in prms.Keys) { command.Add(key, prms[key]); } return command.ExecDataRow(); }