Я пытаюсь запросить у Dapper таблицу Sqlite, которая выглядит следующим образом:
CREATE TABLE "Running" (
"Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
"MachineName" BLOB NOT NULL DEFAULT 'machine' UNIQUE,
"IsOnline" INTEGER DEFAULT 0,
"TimesRan" INTEGER DEFAULT 0,
"LoginDateTime" TEXT,
"LogoutDateTime" TEXT,
"ForceUpgrade" INTEGER NOT NULL DEFAULT 0,
"Version" TEXT
)
В настоящее время в этой таблице я получил только одну запись:
1
DESKTOP-KQT7CGC
0<br>
1<br>
2019-09-21 03:04:10.099067<br>
2019-09-21 03:04:37.6825109
0<br>
4.0.0
var data = await _globalConfig.Connection.GetStatusAsync();
public async Task<List<ApplicationInfoModel>> GetStatusAsync()
{
using (IDbConnection cnn = new SQLiteConnection(ConfigurationManager.GetLocalOrSharedConnectionString(), true))
{
var output = await cnn.QueryAsync<ApplicationInfoModel>("select * from Running", new DynamicParameters());
return output.ToList();
}
}
ApplicationInfoModel
выглядит следующим образом:
public class ApplicationInfoModel
{
public int Id { get; set; }
public string MachineName { get; set; }
public bool IsOnline { get; set; }
public int TimesRan { get; set; }
public DateTime LoginDateTime { get; set; } = DateTime.Now;
public DateTime LogoutDateTime { get; set; }
public bool ForceUpgrade { get; set; }
public string Version { get; set; }
}
Я получаю System.Data.DataException
с сообщением Error parsing column 1 (MachineName=System.Byte[] - Object)
.
Вот стек вызовов:
at Dapper.SqlMapper.ThrowDataException(Exception ex, Int32 index, IDataReader reader, Object value) in C:\projects\dapper\Dapper\SqlMapper.cs:line 3633
at Dapper.SqlMapper.<QueryAsync>d__33`1.MoveNext() in C:\projects\dapper\Dapper\SqlMapper.Async.cs:line 439
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at SdeHelper.Library.Main.DataAccess.SQLiteConnector.<GetStatusAsync>d__11.MoveNext() in G:\Users\mdumi\GitRepos\sdehelper\SdeHelper.Library.Main\DataAccess\SQLiteConnector.cs:line 154
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at SdeHelper.WpfUI.Framework.Helpers.ApplicationManager.<StartApplication>d__3.MoveNext() in G:\Users\mdumi\GitRepos\sdehelper\SdeHelper.WpfUI.Framework\Helpers\ApplicationManager.cs:line 39
И внутреннее исключение:
Message: Object must implement IConvertible.
at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
at System.Convert.ChangeType(Object value, Type conversionType)
Может кто-нибудь помочь мне понять, почему я должен реализовать IConvertible
на модели?
Я пытался реализовать IConvertible
только для свойства MachineName
, но все равно выдает то же исключение.