.NET SqlConnection 및 SqlCommand

.net dapper sql sqlcommand sqlconnection

문제

Dapper ORM을 사용하여 프로젝트에서 SqlConnection 및 SqlCommand 클래스를 사용하지만 이상한 문제가 있습니다. SqlCommand를 사용하여 db 테이블에 행을 삽입 할 때 항상 올바르게 작동하고 업데이트 된 데이터 폼 테이블을 선택할 때 모든 것이 정상이지만 응용 프로그램이 닫히면 데이터가 일부 캐시에 저장되는 것처럼 커밋되지 않습니다. 예를 들어, 두 개의 열 (UserId (PK) 및 UserName (Unique)) 만있는 간단한 테이블을 만들었으며이 경우에도 변경 내용이 저장되지 않습니다. 다음 코드를 사용하여 행을 삽입합니다.

using (SqlConnection c = new SqlConnection(Settings.Default.UsersConnectionString))
        {
            c.Open();


            using (SqlCommand d = new SqlCommand())
            {
                d.CommandText = "INSERT INTO Users (UserName) VALUES ('SomeName')";
                d.CommandType = System.Data.CommandType.Text;
                d.Connection = c;
                int t = d.ExecuteNonQuery();
            }


            c.Close();
        }

인기 답변

dapper의이 코드는 다음과 같아야합니다.

var name = "SomeName";
int t  = c.Execute("INSERT INTO Users (UserName) VALUES (@name)", new {name});

Dapper는 내부 트랜잭션 관리를하지 않으므로 선택적 트랜잭션 매개 변수를 사용하여 전달해야합니다.

내 직감은 다른 DB에 연결하여 데이터를 삽입한다고 알려줍니다. Damiens 암시 적 거래 물건 중 하나이며 유효성 검사가 쉽습니다.




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