質問: new MySqlConnection(_dbConn)) return con.ExecuteAsync("users.UserCreate", user, commandType: CommandType.StoredProcedure); } ``` _dbConnには接続文字列が含まれ、local_dbというデータベースの名前も`local_db`ます。 これはストアドプロシージャのようなものです: ``` DELIMITER $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `users.UserCreate`(IN `@UserId` VARCHAR(128), IN `@UserName` VARCHAR(255), IN `@PasswordHash` LONGTEXT, IN `@SecurityStamp` LONGTEXT) NO SQL INSERT INTO Users (Id, UserName, PasswordHash, SecurityStamp, EmailConfirmed, PhoneNumberConfirmed, TwoFactorEnabled, LockoutEnabled, DateCreated, DateUpdated, IsDeleted) VALUES (@UserId, @UserName, @PasswordHash, @SecurityStamp, 0, 0, 0, 0, CURRENT_DATE, CURRENT_DATE, 0)$$ DELIMITER ; ``` 問題はMySqlやDapperと何か関係がありますか? SQL ServerのストアドプロシージャにもDapperを使用して同様の命名規則を使用していますが、以前はこの問題が発生していませんでした。 私が試してみました: * "local_db.users.UserCreate"を使用する * "local_db.UserCreate"を使用する * "UserCreate"を使う 何か案は?
回答: さて、SQLをMySQLからMySQLに変換することは、MySQLの(イン)能力に関して学習曲線がいっぱいであることが判明しました。フルストップ/ピリオド( "。")を使用してスキーマ命名規則を回避するには、代わりにアンダースコアを使用します。 同じジレンマに直面している誰かのために、アンダースコアを使用すると、長期的に頭痛の時間を節約できます!