.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();
        }

熱門答案

這個代碼在精巧的應該是:

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

Dapper沒有內部事務管理,必須使用可選的事務參數傳遞它。

我的直覺告訴我你要連接到另一個數據庫以插入數據。無論是Damiens的隱式交易內容,都很容易驗證。



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因