我正在使用SqlCommandProvider,我需要为id集合中的每个id获取一些数据
let ids=["B058A99-C4B2-4CC3-BA9F-034B1F1ECCBD";"A09C01C-D51B-41C1-B44C-0995DD285088"]
[<Literal>]
let qLogo ="""SELECT Id,LogoUrl FROM Hotels WHERE Id IN (@IDS)"""
let queryLogo = new SqlCommandProvider<qLogo,constring>()
queryLogo .Execute(ids)//i need to be able to pass a collection here
`
答案 0 :(得分:2)
长话短说,SqlCommandProvider
甚至不是正确的类型提供程序(假设您不考虑字符串连接来构建查询)。原因是SQL Server仅通过调用存储过程并传递表值参数来接受数组参数。
因此,要调用存储过程,您需要SqlProgrammabilityProvider
来实现此目的。但是您必须预先创建表类型和存储过程,如类型provider documentation中所述(向下滚动到“表值参数(TVP)”部分)。