我認爲這在其他地方已有報道,但我現在沒有看到它。無論如何,有一個簡單的v3查詢問題。使用SQLite ADO.NET提供程序1.0.65.0。我的表結構是這樣的:SQLite Int64與Int32問題和SubSonic ActiveRecord
CREATE TABLE "SamplerData" ("RowId" INT PRIMARY KEY NOT NULL ,"SampName" VARCHAR(128),"SampPurpose" VARCHAR(2048),"ActiveState" INTEGER NOT NULL DEFAULT 1)
我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
});
我有一個WPF代碼隱藏的查詢,看起來像這樣:
SqlQuery sqlsql = new Select()
.From("SamplerData")
.Where("ActiveState")
.IsEqualTo(1);
List<SamplerDatum> sampAll = sqlsql .ExecuteTypedList<SamplerDatum>();
設置爲顯示sqlsql值的斷點顯示如下:
{SELECT * FROM `SamplerData` WHERE ActiveState = @0}
然後代碼與拋出:
{ 「類型 'System.Int64' 的對象不能被轉換爲類型 'System.Int32'」}
A 「找到」 在Visual Studio中沒」告訴我Int64轉換髮生在哪裏。據我所知,SQLite使用Int64作爲標識列,但不知道SubSonic爲什麼/如何在Structs使其成爲Int32時處理轉換。
幫助?
謝謝..
字樣。感謝Rob! – Snowy 2009-08-27 15:17:13