Je pensais que c'était couvert ailleurs, mais je ne le vois pas maintenant. Quoi qu'il en soit, avoir un problème avec une simple requête v3. À l'aide du fournisseur SQLite ADO.NET 1.0.65.0. Ma structure de table ressemble à ceci:SQLite Int64 vs Int32 Problème et SubSonic ActiveRecord
CREATE TABLE "SamplerData" ("RowId" INT PRIMARY KEY NOT NULL ,"SampName" VARCHAR(128),"SampPurpose" VARCHAR(2048),"ActiveState" INTEGER NOT NULL DEFAULT 1)
Mon fichier Structs1.cs a cela il:
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
});
J'ai une requête dans un codebehind WPF qui ressemble à ceci:
SqlQuery sqlsql = new Select()
.From("SamplerData")
.Where("ActiveState")
.IsEqualTo(1);
List<SamplerDatum> sampAll = sqlsql .ExecuteTypedList<SamplerDatum>();
Un point d'arrêt défini pour afficher la valeur de sqlsql montre ceci:
{SELECT * FROM `SamplerData` WHERE ActiveState = @0}
ensuite le code avec lancers francs:
{ "Objet de type 'System.Int64' ne peut pas être convertie en type 'System.Int32'"}
A "trouver" dans Visual Studio n » ai pas t montrez moi où la conversion Int64 se passait. Je comprends que SQLite utilise Int64 pour les colonnes d'identité, mais pas pourquoi/comment SubSonic gère la conversion quand le Structs le fait de toute façon Int32.
Aide ?!
Merci ..
Word up. Merci Rob! – Snowy