如何在Dapper中使用参数列表查询SQL Server数据库?

时间:2019-03-11 19:46:30

标签: c# sql-server dapper

我有一个具有各种属性的对象列表。我想使用这些属性查询数据库并返回结果列表。

这是我尝试过的:

public async Task<IEnumerable<Animal>> GetAnimalsFromAttributesAsync(IEnumerable<AnimalInfo> attributeSets)
{
    using (var myDB = new SqlConnection(connectionString))
    {
        await myDB.OpenAsync();
        var results = new List<Animal>();

        foreach (var attributeSet in attributeSets)
        {
            var sql = @"select AnimalID, AnimalTypeID, AnimalColor
                        from Animals
                        where AnimalTypeID = @AnimalTypeID 
                          and AnimalColorID = @AnimalColorID";

            var result = myDB.Query<Animal>(sql, attributeSet);
            results.AddRange(result);
        }

        return results
    }
}

这对于少量的属性也可以。但是,如果我有很多属性,则会收到此错误:

  

错误:传入请求的参数太多。该服务器最多支持2100个参数。减少参数数量并重新发送请求。

有更好的方法吗?

0 个答案:

没有答案