Using the ExecuteEnumerator() Method

The ExecuteEnumerator() method appears on generated adapters that return columnar output. This is the simplest and most efficient way of executing a statement that returns results and is the preferred method for execution.

In the example below we illustrate the use of this method:

   1:  public static FaqItemCollection GetFaqByCategory(Lookup<byte> category) {
   2:      FaqItemCollection collection = new FaqItemCollection();
   3:      FaqItem tempFaq = null;
   4:   
   5:      using (SqlConnection connection = new SqlConnection(ApplicationState.ConnectionString)) {
   6:          using (SelectFaqByCategoryIdAdapter adapter = new SelectFaqByCategoryIdAdapter(connection)) {
  7:              adapter.CategoryId = category.PrimaryKey.Value;
  8:              foreach (DbDataRecord record in adapter.ExecuteEnumerator()) {
  9:                  tempFaq = new FaqItem();
  10:                  tempFaq.primaryKey = record.GetInt32(SelectFaqByCategoryIdAdapter.FaqIdColumnPosition);
  11:                  tempFaq.FaqCategory = category;
  12:                  tempFaq.Question = record.GetString(SelectFaqByCategoryIdAdapter.QuestionColumnPosition);
  13:                  tempFaq.Answer = record.GetString(SelectFaqByCategoryIdAdapter.AnswerColumnPosition);
  14:                  tempFaq.CreatedDate = record.GetDateTime(SelectFaqByCategoryIdAdapter.CreatedDateColumnPosition);
  15:                  if (!record.IsDBNull(SelectFaqByCategoryIdAdapter.ModifiedDateColumnPosition)) {
  16:                      tempFaq.ModifiedDate = record.GetDateTime(SelectFaqByCategoryIdAdapter.ModifiedDateColumnPosition);
  17:                  }
  18:                  collection.Add(tempFaq);
  19:              }
  20:          }
  21:      }
  22:   
  23:      return collection;
  24:  }