Dapper与SQLite和C#错误“没有足够的参数提供给命令”

时间:2019-06-21 09:22:02

标签: c# sqlite dapper system.data.sqlite dapper-contrib

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

2^n

我想做的是使用Dapper使用父级的FK列值(SQLite作为数据库)查询子级表。下面的代码给我错误

  

提供给命令的参数不足

有人可以指出我的错误吗?

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

谢谢。


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

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; }
    }

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

1 个答案:

答案 0 :(得分:0)

我查看了来自GitHub的原始代码,搜索了<VirtualHost *:8000> ProxyPreserveHost On ProxyRequests Off ServerName 10.11.12.221 ServerAlias 10.11.12.221 ProxyPass / http://10.11.12.221:80/index.html ProxyPassReverse / http://10.11.12.221:80/index.html </VirtualHost> ,并仅通过几种方法进行了手动跟踪。尽管它是高度抽象的,并且文档稀疏,但是代码本身至少表明期望使用Query< T >对象。似乎更喜欢使用IEnumerable对象作为集合,但除此之外,值得花费大量时间遍历代码以获取更多详细信息。

这在测试中对我有用:

Dapper.IDynamicParameters