gpt4 book ai didi

c# - 使用 SQLite 和 C# 错误 "Insufficient parameters supplied to the command"的 Dapper

转载 作者:行者123 更新时间:2023-11-30 17:26:24 27 4
gpt4 key购买 nike

自原始帖子以来的新信息。此代码成功检索了一个实体,这让我觉得 QueryMultiple 映射与 Query 不同。是真的吗?

 using (var multi = sqlConn.QueryMultiple(sqlStmt, new { MytableId = mytableinstance.MytableId }))
{
var fullEnt = multi.Read<MytableSource>();
}

我想做的是用Dapper根据父表的FK列值查询子表,数据库是SQLite。下面的代码给我错误

Insufficient parameters supplied to the command

谁能指出我的错误?

注意 - 我也在使用 Dapper.Contrib。 .NET Framework 4.7.2。

谢谢。


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;

}

未知错误提供给命令的参数不足

最佳答案

我查看了 GitHub 上的原始代码,搜索了 Query< T >并仅通过几种方法手动追踪。尽管它非常抽象并且文档很少,但代码本身至少揭示了一个 IEnumerable预计对象。它似乎更喜欢 Dapper.IDynamicParameters集合的对象,但除此之外,不值得通过代码来获取更多详细信息。

这在测试中对我有用:

var parameters = new DynamicParameters();
param.Add("@MytableId" , mytableinstance.MytableId);
var fullEnt = sqlConn.Query<MytableSource>(sqlStmt, parameters ).FirstOrDefault();

关于c# - 使用 SQLite 和 C# 错误 "Insufficient parameters supplied to the command"的 Dapper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56700475/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com