예제 #1
0
        public static async Task InsertAsync(this AccessorMembers members, ISqlDialect dialect, string connectionString, IReadOnlyDictionary <AccessorMember, object> hash, CancellationToken cancellationToken = default)
        {
            cancellationToken.ThrowIfCancellationRequested();

            var sql        = dialect.InsertInto(members, hash.Keys, hash.Count, false);
            var parameters = hash.Keys.ToDictionary(k => $"{dialect.Parameter}{dialect.ResolveColumnName(k)}", v => hash[v]);
            var inserted   = await dialect.ExecuteAsync(connectionString, sql, parameters, cancellationToken);

            Debug.Assert(inserted == 1);
        }