我正在使用:ASP.NET MVC,MySql,Dapper.NET微-orm 我用3个SELECT做了一个存储过程,其中两个返回列表,第三个返回一个整数。dapper querymultiple spliton error
这里是我的代码:
using (var conn = new MySqlConnection(GetConnectionString()))
{
var readDb = conn.QueryMultiple(storedProcedure, parameters, commandType: CommandType.StoredProcedure);
var result = new someView
{
TopicsList = readDb.Read<ITopic>().ToList(),
TopTopicsList = readDb.Read<IMessage>().ToList(),
TopicsCount = readDb.Read<int>().Single()
};
return result;
}
在ITopic我TopicId,在即时聊天我的MessageId。
而这里的错误:
When using the multi-mapping APIs ensure you set the splitOn param if you have keys other than Id Parameter name: splitOn
我试过两个QueryMultiple和读取加入splitOn,慢慢靠近连在一起接受了它。
虽然我不明白为什么我需要splitOn?不能缩小看到我有三个单独的SELECT?当分别对每个选择使用conn.Read(storedProcedure,参数)(而不是所有的多重查询)时,dapper将它映射到给定对象没有问题。
我在做什么错?
这应该工作。我会看看我是否可以在本地复制。我的第一个想法是“你确定它会返回3格吗?” – 2014-09-19 17:25:25
是的,我确定,通过在phpMyAdmin上运行存储过程来检查它,它返回三个表。我也嘲笑每个选择单独和他们都工作,但他们三个一起使用querymultiple仍然失败,同样的错误 – shahaf 2014-09-19 17:35:26