考虑以下数据结构(简化)
CREATE TABLE data (
country_code CHAR(2) NOT NULL,
category_id INTEGER NOT NULL,
details VARCHAR NOT NULL,
PRIMARY KEY (country_code, category_id)
);
INSERT INTO data (country_code, category_id, details)
VALUES ('US', 1, 'United States Data'), ('FR', 2, 'France data'), ('DE', 1, 'Germany data');
SELECT * FROM data
WHERE (
(country_code = 'US' AND category_id = 1) OR
(country_code = 'FR' AND category_id = 2)
);
以及以下类和查询方法:
public class Query
{
public string CountryCode { get; set; }
public int CategoryId { get; set; }
}
public async Task<IEnumerable<dynamic>> GetSizesAsync(IEnumerable<Query> query)
{
}
我的要求是从SQL Server获得确切的(CountryCode, CategoryId)
组合。是否有使用Dapper构建这种WHERE
的内置方法?
我可以完全建立一个表值参数,将对插入其中,然后将其与我的data
表联接,或者自己动态地构建SQL(我希望不惜一切代价避免这种情况),但是我d想知道Dapper是否支持开箱即用的功能。