ทำไม `SELECT @@ IDENTITY 'ถึงส่งกลับทศนิยม
ฉันใช้Dapperเพื่อดำเนินการค้นหาต่อไปนี้กับอินสแตนซ์ SQL Server 2008 R2 Express จากแอปพลิเคชัน ASP.NET MVC 3 (.NET 4.0) INSERT INTO Customers ( Type, Name, Address, ContactName, ContactNumber, ContactEmail, Supplier) VALUES ( @Type, @Name, @Address, @ContactName, @ContactNumber, @ContactEmail, @Supplier) SELECT @@IDENTITY การเรียกร้องให้connection.Query<int>(sql, ...)ส่งการยกเว้น Cast ไม่ถูกต้อง ผมเคยบั๊กมันและมันก็เป็นจุดที่ Dapper เรียกบนกลับGetValueSqlDataReader ชนิดส่งคืนของGetValueคือObjectการตรวจสอบในรายการดีบักเกอร์ซึ่งเป็นทศนิยมแบบกล่อง ถ้าฉันเปลี่ยนการเลือกSELECT CAST(@@IDENTITY as int)เป็นการคืนค่าของ GetValue จะเป็น int แบบกล่องและข้อยกเว้นจะไม่ถูกส่งออกไป …