private DbColumnManager WaitForItem(int index, string property) { if (!isStarted) { Start(); } countSet.WaitOne(); DbColumnManager man = null; if (!string.IsNullOrEmpty(property)) { man = GetColumnManager(property); if (man == null) { throw new ArgumentException("No manager found for property " + property); } } if (index >= count) { throw new ArgumentOutOfRangeException("index"); } itemWaitingList.WaitForItem(index); CheckLastError(); if (index >= count) { throw new ArgumentOutOfRangeException("index"); } return(man); }
public object this [int index, string property] { get { DbColumnManager man = WaitForItem(index, property); if (man == null) { throw new ArgumentException("No manager found for property " + property); } return(man.GetValue(innerList [index])); } set { DbColumnManager man = WaitForItem(index, property); if (man == null) { throw new ArgumentException("No manager found for property " + property); } man.SetValue(innerList [index], value); } }
protected override void InitializeColumnManagers() { FieldTranslationCollection fTrans = provider.FieldsTable; SelectBuilder sBuilder = new SelectBuilder(fTrans, commandText); colManagers = new DbColumnManager [sBuilder.SelectClause.Count]; foreach (SelectColumnInfo columnInfo in sBuilder.SelectClause) { columns.Add(fTrans.StripQuotationChars(columnInfo.ColumnName)); } DbField [] fields = fTrans.TranslateToDbField(columns.ToArray()); for (int i = 0; i < columns.Count; i++) { LazyTableColumnManager lcm = new LazyTableColumnManager(i, fields [i]); string columnName = columns [i]; colManagers [i] = lcm; dbPropManagers [columnName] = lcm; allPropManagers [columnName] = lcm; } translateManagers = false; }
public LazyTableColumnDescriptor(DbColumnManager manager) : base(manager.DbField.Field, null) { this.manager = manager; }