Я пытаюсь получить ExpressMapper для отображения из DataReader в объект (в основном, Sqlite Rows -> Objects). У меня был успех с AutoMapper, но я нашел некоторые другие проблемы, которые заставили меня искать другой инструмент карты.C# Использование mapper для сопоставления DataReader с объектом
В AutoMapper я использовал следующий код, но в ExpressMapper все строковые свойства NULL, а long prop всегда 0, это означает, что отображение не работает. Попробовал посмотреть некоторые примеры для ExpressMapper, но не нашел. Вы можете помочь? Кроме того, есть ли другие карты помимо AutoMapper (и, возможно, ExpressMapper), которые могут помочь мне достичь этого сценария?
Спасибо!
public class ImportedFiles
{
public Int64 Id { get; set; }
public String FileName { get; set; }
public String Hash { get; set; }
public ImportedFiles()
{
}
}
private static void ReadImportedFiles()
{
var lst = ReadData<ImportedFiles>("SELECT * FROM ImportedFiles").ToList();
}
public static IEnumerable<T> ReadData<T>(string queryString)
{
using (var connection = new SQLiteConnection(ConnectionBuilder.ConnectionString))
{
connection.Open();
using (var cmd = connection.CreateCommand())
{
cmd.CommandText = queryString;
using (var reader = cmd.ExecuteReader())
if (reader.HasRows)
while (reader.Read())
yield return Mapper.Map<IDataRecord, T>(reader);
}
}
}
В чем вопрос? Вам нужна помощь с Automapper или ExpressMapper? Как только вы определите, с какой из них вам потребуется помощь, пожалуйста, покажите пример кода (и, вероятно, некоторые примеры данных), который воспроизводит проблему, в которой вам нужна помощь. – PatrickSteele
Что касается Expressmapper: К сожалению, Expressmapper пока не поддерживает отображение DataReader в Object. Основная проблема, что каждый раз IDataRecord мог иметь разные имена столбцов на DataReader, которые заставляют Expressmapper компилировать сопоставления для каждого DataReader без кеша, но я думаю, что все равно двойное выполнение кэширования, поэтому я только что зарегистрировал проблему: https://github.com/expressmapper/ExpressMapper/issues/74 в Github, который, вероятно, будет включен в версию 2.0. –