Why is `SELECT @@IDENTITY` returning a decimal?
@@identity returns a numeric(38,0).  You'll need to cast it to get it to an int.
SELECT CAST(@@identity AS INT)

Also, try using scope_identity instead.  If you have any triggers on the Customers table, you may end up getting the last identity from another table.

Finally, since you're using dapper, you'll want to wrap all of that inside a stored procedure so that you are guaranteed to execute the insert and then the select on the identity in the same batch.
Theoretically, it should work most of the time to execute both of those on their own.  But issues could arise if you have to go to the database twice.  (E.g. how does this work with connection pooling?  What about dropped connections? etc.)  If you just throw it all in a stored procedure, you won't have to worry about that extra effort down the road.