Почему не выбирают () Преобразовать IENumerable на iEnumerable ?

Я пытаюсь использовать Dapper просто чтобы сопоставить таблицы базы данных для типов в C #, однако, некоторые из моих типов нуждаются в дополнительных элементах, которые не являются в таблице Отказ Для этого я использую фабрику, которая может принять значения столбца и установить соответствующие свойства.

public IEnumerable<IMyType> All() {
  var query = _connection.Query("SELECT * FROM [table]");
  return query.Select(o => _myTypeFactory.Create(o));
}

В настоящее время это приведет к созданию оператора возврата, создавая ошибку:

не может преобразовать тип выражения System.Collections.generic.ienumable ' ​​для возврата типа System.Collections. Generic.ienableable '

Мой заводский класс выглядит что-то подобное:

public class MyTypeFactory {
  public IMyType Create(dynamic o) {
    return Create((String) o.Code, (Int32) o.KeyID);
  }
  public IMyType Create(String code, Int32 keyID) {
    return new MyType(code, Cache.Lookup(keyID));
  }
}

Почему выбрать () INEMENT () IENumerable ? Что мне нужно сделать, чтобы сделать эту работу? Это просто неправильный подход, и есть лучший способ?

5
задан Jon Skeet 30 August 2011 в 18:10
поделиться