コード例 #1
0
        /// <summary>
        ///     Insert Async.
        /// </summary>
        /// <param name="entity" />
        /// <param name="connectionString" />
        public static async Task <ReferenceDao> InsertAsync(this ReferenceDao entity, string connectionString)
        {
            // Sql
            string sql = @"INSERT INTO [Utility].[Reference] 
				 ([Id], [Name], [Description], [CountryCode], [Archived], [CreatedOn], [ChangedOn]) 
				 OUTPUT [INSERTED].Id 
				 VALUES(@Id, @Name, @Description, @CountryCode, @Archived, @CreatedOn, @ChangedOn)"                ;

            // Parameters
            DynamicParameters para = new DynamicParameters();

            para.Add("@Id", entity.Id);
            para.Add("@Name", entity.Name);
            para.Add("@Description", entity.Description);
            para.Add("@CountryCode", entity.CountryCode);
            para.Add("@Archived", entity.Archived);
            para.Add("@CreatedOn", entity.CreatedOn);
            para.Add("@ChangedOn", entity.ChangedOn);

            // Db Operation
            using (var con = new SqlConnection(connectionString))
            {
                await con.OpenAsync();

                // Transaction
                using (IDbTransaction tn = con.BeginTransaction())
                {
                    try
                    {
                        var item = await con.QuerySingleAsync <Guid>(sql, para, tn);

                        tn.Commit();
                        entity.Id = item;
                        return(entity);
                    }
                    catch (Exception e)
                    {
                        tn.Rollback();
                        if (con.State != ConnectionState.Closed)
                        {
                            con.Close();
                        }
                        return(null);
                    }
                }
            }
        }
コード例 #2
0
        /// <summary>
        ///     Update Async.
        /// </summary>
        /// <param name="entity" />
        /// <param name="connectionString" />
        public static async Task <ReferenceDao> UpdateAsync(this ReferenceDao entity, string connectionString)
        {
            // Sql
            string sql = @"UPDATE [Utility].[Reference] 
				 SET Name=@Name,Description=@Description,CountryCode=@CountryCode,Archived=@Archived,CreatedOn=@CreatedOn,ChangedOn=@ChangedOn 
				 WHERE Id=@Id;"                ;

            // Parameters
            DynamicParameters para = new DynamicParameters();

            para.Add("@Id", entity.Id);
            para.Add("@Name", entity.Name);
            para.Add("@Description", entity.Description);
            para.Add("@CountryCode", entity.CountryCode);
            para.Add("@Archived", entity.Archived);
            para.Add("@CreatedOn", entity.CreatedOn);
            para.Add("@ChangedOn", entity.ChangedOn);

            // Db Operation
            using (var con = new SqlConnection(connectionString))
            {
                await con.OpenAsync();

                // Transaction
                using (IDbTransaction tn = con.BeginTransaction())
                {
                    try
                    {
                        var item = await con.ExecuteAsync(sql, para, tn);

                        tn.Commit();
                        return(entity);
                    }
                    catch (Exception e)
                    {
                        tn.Rollback();
                        if (con.State != ConnectionState.Closed)
                        {
                            con.Close();
                        }
                        return(null);
                    }
                }
            }
        }