如何使用 Dapper 在 Blazor 中从 MySql 获取新添加的 Id

How to get the newly add Id from MySql in Blazor using Dapper

我是 blazor 的新手,甚至 asp,我从网上学习了如何使用 Dapper 以及更新和删除数据,但是,我想插入一条新记录到 MySql 数据库并获取新插入的Id。 我使用以下代码进行更新和删除。

public Task SaveData<T>(string sql, T parameters, string connectionstring)
    {
        using (IDbConnection connection = new MySqlConnection(connectionstring))
        {
            return connection.ExecuteAsync(sql, parameters);
           
        }
    }

你能帮我实现这个吗,谢谢

假设您的 sql 参数中包含什么,您可以这样做:

string sql = @"
INSERT INTO [MyTable] ([Stuff]) VALUES (@Stuff);
SELECT CAST(SCOPE_IDENTITY() AS INT)";

我设法通过调整代码解决了这个问题:-

public async Task<int> InsertData<T>(string sql, T parameters, string connectionstring)
    {
        using (IDbConnection connection = new MySqlConnection(connectionstring))
        {
            var newId = await connection.QueryAsync<int>(sql + "SELECT LAST_INSERT_ID();", parameters);
            return newId.Single(); 
        }
    }

和插入字符串如下: 在剃须刀组件中:

var sql= @"INSERT INTO countries (Name,Remarks,IsDeleted) VALUES (@Name,@Remarks,@IsDeleted);";
                    int CountryId = await _fetchData.InsertData(sql, new {Name = CountryName, Remarks = Remarks, IsDeleted= false},_config.GetConnectionString("DefaultConnection"));