私は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)
だから私は2、5などを得ることができますPersonId
。