使用OrmLite ServiceStack,我确实这样查询了选择列表和总计计数:
public async Task<OrmInvoice> OrmTest(int Id)
{
var q = OrmDb.From<OrmInvoice>().Where(o => o.Id == Id);
var rs1 = await OrmDb.SelectAsync(q);
var rs2 = await OrmDb.CountAsync(q);
var q2 = q.Clone(); //try to clone
var rs3 = await OrmDb.CountAsync(q2);
return null;
}
i仅通过rs1和rs2测试=>错误尝试克隆,rs3 =>相同的错误
Caught System.ArgumentException
System.ArgumentException: The SqlParameter is already contained by another SqlParameterCollection.
at System.Data.SqlClient.SqlParameterCollection.Validate
at System.Data.SqlClient.SqlParameterCollection.Add
at ServiceStack.OrmLite.OrmLiteReadCommandExtensions.SetParameters
我受困,从ormlite的基地不知道为什么会发生此问题?感谢您的帮助!
您应该在第二次查询之前清除参数。