Я пытаюсь использовать 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
? Что мне нужно сделать, чтобы сделать эту работу? Это просто неправильный подход, и есть лучший способ?