uniqueidentifier에 의해 선택 후 dapper를 사용하여 여러 레코드 업데이트

c# dapper

문제

데이터베이스에서로드 한 레코드 수가 많아서 반환하기 전에 커플 값을 업데이트하고 싶습니다. 유일한 요구 사항은 하나씩 여러 레코드가 하나씩 업데이트되는 것을 원하지 않습니다.

내 ID는 GUID (uniqueidentifier)입니다.

지금까지 나는 내 코드를

public IEnumerable<Person> GetUnprocessedPeople(int batchSize)
    {
        List<Queue_ImportQueue> list;
        using (IDbConnection db = OpenedConnection)
        {
            string peopleList = $"SELECT TOP({batchSize}) * FROM [dbo].[Person]";

            list = db.Query<Person>(peopleList).ToList();
            using (IDbTransaction transactionScope = db.BeginTransaction(IsolationLevel.Serializable))
            {
                string updateQuery = $"UPDATE [dbo].[Person] SET Created = GETDATE() WHERE Id ='@ids'";

                try
                {
                    db.Execute(updateQuery, new { Id = list.Select(x => x.Id) }, transactionScope);
                    transactionScope.Commit();
                }
                catch (Exception ex)
                {
                    transactionScope.Rollback();
                    throw;
                }
            }
        }
        return list;
    }

인기 답변

OK 솔루션은 매우 간단했습니다. 특정 주조가 필요 없습니다. 모든 논증이 올바른지 확인하십시오. 그래서 추출물은 나를 위해 쿼리를 수정했습니다 :

            string updateQuery = $"UPDATE [dbo].[Person] SET Created = GETDATE() WHERE Id ='@Ids'";

           ...

            db.Execute(updateQuery, new { Ids = list.Select(x => x.Id) }, transactionScope);


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.