Sno*_*owy 3 sqlite subsonic activerecord subsonic3
我认为这在其他地方有所涉及,但我现在还没有看到.无论如何,有一个简单的v3查询的问题.使用SQLite ADO.NET提供程序1.0.65.0.我的表结构如下所示:
CREATE TABLE "SamplerData" ("RowId" INT PRIMARY KEY NOT NULL ,"SampName" VARCHAR(128),"SampPurpose" VARCHAR(2048),"ActiveState" INTEGER NOT NULL DEFAULT 1 )
Run Code Online (Sandbox Code Playgroud)
我的Structs1.cs文件中有这个:
Columns.Add(new DatabaseColumn("RowId", this)
{
IsPrimaryKey = true,
DataType = DbType.Int32,
IsNullable = false,
AutoIncrement = false,
IsForeignKey = false
});
Columns.Add(new DatabaseColumn("SampName", this)
{
IsPrimaryKey = false,
DataType = DbType.AnsiString,
IsNullable = true,
AutoIncrement = false,
IsForeignKey = false
});
Columns.Add(new DatabaseColumn("SampPurpose", this)
{
IsPrimaryKey = false,
DataType = DbType.AnsiString,
IsNullable = true,
AutoIncrement = false,
IsForeignKey = false
});
Columns.Add(new DatabaseColumn("ActiveState", this)
{
IsPrimaryKey = false,
DataType = DbType.Int32,
IsNullable = false,
AutoIncrement = false,
IsForeignKey = false
});
Run Code Online (Sandbox Code Playgroud)
我在WPF代码隐藏中有一个查询,如下所示:
SqlQuery sqlsql = new Select()
.From( "SamplerData" )
.Where( "ActiveState" )
.IsEqualTo( 1 );
List<SamplerDatum> sampAll = sqlsql .ExecuteTypedList<SamplerDatum>();
Run Code Online (Sandbox Code Playgroud)
设置为显示sqlsql值的断点显示:
{SELECT * FROM `SamplerData` WHERE ActiveState = @0}
Run Code Online (Sandbox Code Playgroud)
然后代码抛出:
{"System.Int64类型的对象"无法转换为'System.Int32'类型."}
Visual Studio中的"查找"没有显示Int64转换发生的位置.我知道SQLite使用Int64作为标识列,但不知道为什么/如何在Structs使其成为Int32时处理转换的原因.
救命?!
谢谢..
| 归档时间: |
|
| 查看次数: |
2944 次 |
| 最近记录: |