我有一个myStoreProcedure
赞
@personId VARCHAR(MAX)
SELECT IdNo, LastName + ', ' + FirstName + ' ' + MiddleName AS Name
FROM Person
WHERE CAST(Person.PersonId AS varchar(max)) in (@personId)
我想列出所有基于PersonId
使用的人,WHERE IN
但数据类型是varchar
. 到目前为止,这是我尝试过的。
var p0 = p.Select(x => new { id = "'" + x.ToString() + "'" })
.Select(c => c.id).ToArray();
string personIds1 = string.Join(",", p0);
比方说,我有2, 5
PersonId,所以通过加入Id
上面的代码,结果是
personIds1 = '2','5'
现在,当我myStoreProcedure
使用参数调用时,我没有得到任何结果。
var list = myEntities.myStoreProcedure(personIds1).Select(t => new PersonEntity
{
IdNo = t.IdNo,
Name = t.Name,
}).ToList();
我的问题是:
如何创建一个存储过程来读取varchar
就像示例一样:
--@personId = "'2', '5'" <-just an example
WHERE CAST(Person.PersonId AS varchar(max)) in (@personId)
所以我可以得到PersonId
2、5等等。