自原始帖子以来的新信息。这段代码成功检索了一个实体,这让我认为 QueryMultiple 映射与 Query 不同。真的吗?
using (var multi = sqlConn.QueryMultiple(sqlStmt, new { MytableId = mytableinstance.MytableId }))
{
var fullEnt = multi.Read<MytableSource>();
}
我想做的是使用 Dapper 根据父表的 FK 列值查询子表,以 SQLite 作为数据库。下面的代码给了我错误
提供给命令的参数不足
有人能指出我的错误吗?
注意 - 我也在使用 Dapper.Contrib。 .NET 框架 4.7.2。
Thanks.
PRAGMA foreign_keys = '1';
CREATE TABLE "Mytable" (
"MytableId" INTEGER Primary Key AutoIncrement,
"MytableName" TEXT UNIQUE,
"Stamp" TEXT
);
CREATE TABLE "MytableSource" (
"MytableSourceId" INTEGER Primary Key AutoIncrement,
"MytableId" INTEGER,
"SourceBlob" BLOB,
"Stamp" TEXT,
FOREIGN KEY("MytableId") REFERENCES "Mytable"("MytableId")
);
[Table("Mytable")]
public class Mytable
{
[Key]
public long MytableId { get; set; }
public String MytableName { get; set; }
public String Stamp { get; set; }
}
[Table("MytableSource")]
public class MytableSource
{
[Key]
public long MytableSourceId { get; set; }
public long MytableId { get; set; }
public String SourceBlob { get; set; }
public String Stamp { get; set; }
}
var sqlStmt = "Select * From MytableSource Where MytableId = @MytableId";
var sqlConn = new SQLiteConnection( this.ConnectionString );
using ( sqlConn )
{
sqlConn.Open();
var fullEnt = sqlConn.Query<MytableSource>(sqlStmt, new SQLiteParameter("@MytableId" , mytableinstance.MytableId )).FirstOrDefault();
this.MytableSourceCurrent = fullEnt;
}
未知错误
提供给命令的参数不足