public override IRow this[IPrimaryKey key] { get { StringBuilder where = new StringBuilder(); foreach (ICell cell in (IEnumerable <ICell>)key) { where.Append(cell.Column.Name).Append(" = ") .Append(helper.DbValueToString(cell.Value)) .Append(", "); } if (where.Length > 0) { where.Remove(where.Length - 2, 2); } IDbReader result = SelectAll(where.ToString()); return(result.MoveNext() ? result.Current : null); } }