相关疑难解决方法(0)

Dapper.NET和存储过程具有多个结果集

有没有办法使用Dapper.NET与返回多个结果集的存储过程?

在我的例子中,第一个结果集是一行,只有一列; 如果是,0则调用成功,第二个结果集将包含实际的行/列数据.(如果它不为零,则会发生错误,并且不会提供第二个结果集)

有没有机会用Dapper.NET处理这个?到目前为止,我只回到那个单身0- 但仅此而已.

更新:好的,它工作正常 - 只要结果集没有.2是单个实体:

Dapper.SqlMapper.GridReader reader = 
    _conn.QueryMultiple("sprocname", dynParams, 
    commandType: CommandType.StoredProcedure);

int status = reader.Read<int>().FirstOrDefault();
MyEntityType resultObj = reader.Read<MyEntityType>().FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

现在,我还有另一项要求.

对于第二个结果集,Dapper的多映射(将从SQL Server返回的单行拆分为两个独立的实体)似乎尚未得到支持(至少似乎没有.Read<T>可以处理的重载)多映射).

如何将该行拆分为两个实体?

sql-server stored-procedures multiple-resultsets dapper

73
推荐指数
3
解决办法
5万
查看次数

如何在ServiceStack中使用Dapper

目前,我正在使用OrmLite进行数据库操作.我也打算使用Dapper ORM,但任何人都可以指出我如何在ServiceStack中集成DapperORM.我是否需要将Dapper和插件的IDbConnection和IDbConnectionFactory接口实现到容器中.

  public override void Configure(Container container) {
        container.Register<IDbConnectionFactory>(
          c => new OrmLiteConnectionFactory(ConfigurationManager.ConnectionStrings["default"].ConnectionString,
                                            SqlServerDialect.Provider));

        container.Register<IDbConnection>(c => c.Resolve<IDbConnectionFactory>().OpenDbConnection()).ReusedWithin(ReuseScope.Request);

      }
Run Code Online (Sandbox Code Playgroud)

servicestack dapper ormlite-servicestack

10
推荐指数
2
解决办法
2483
查看次数

ServiceStack.OrmLite从存储过程中获取多个结果集

我一直在使用SqlList()从SP接收结果集,这很方便.

var people = db.SqlList<Person>("EXEC GetRockstarsAged @age", new { "age", 42 });
Run Code Online (Sandbox Code Playgroud)

但是如何使用此OrmLite从单个SP获取多个结果集?使用上述方法似乎只检索第一个结果集.

servicestack ormlite-servicestack

4
推荐指数
1
解决办法
867
查看次数