Beispiel #1
0
        /// <summary>
        /// 지정된 Entity의 속성 값을 이용하여 Procedure의 Parameter 값을 설정하고, 실행시키는 작업을 비동기적으로 수행합니다.
        /// 일반적으로 Save / Update시에 활용하면 좋다.
        /// 단, 비동기적인 작업이므로, Transaction 에 문제가 발생할 소지가 있습니다.
        /// </summary>
        /// <typeparam name="T">Persistent object 수형</typeparam>
        /// <param name="repository">IAdoRepository 인스턴스</param>
        /// <param name="spName">실행할 Procedure Name</param>
        /// <param name="entity">실행할 Entity</param>
        /// <param name="nameMapper">Name Mapping Class</param>
        /// <returns>Command 인자 중에 ParameterDirection이 ReturnValue인 인자의 값</returns>
        public static Task <object> ExecuteEntityTask <T>(this IAdoRepository repository, string spName, T entity, INameMapper nameMapper)
        {
            spName.ShouldNotBeWhiteSpace("spName");
            entity.ShouldNotBeNull("entity");
            nameMapper.ShouldNotBeNull("nameMapper");

            return(Task.Factory.StartNew(() => repository.ExecuteEntity <T>(spName, entity, nameMapper)));
        }
Beispiel #2
0
 /// <summary>
 /// 지정된 Procedure를 수행한다. 인자로 entity의 속성값을 이용한다.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="repository">IAdoRepository 인스턴스</param>
 /// <param name="spName">실행할 Procedure Name</param>
 /// <param name="entity">실행할 Entity</param>
 /// <param name="nameMapper">Name Mapping Class</param>
 /// <returns>Command 인자 중에 ParameterDirection이 ReturnValue인 인자의 값</returns>
 public static object ExecuteEntity <T>(this IAdoRepository repository, string spName, T entity, INameMapper nameMapper)
 {
     using (var cmd = repository.GetProcedureCommand(spName, true))
         return(repository.ExecuteEntity(cmd, entity, nameMapper));
 }
Beispiel #3
0
 /// <summary>
 /// 지정된 Procedure를 수행한다. 인자로 entity의 속성값을 이용한다.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="repository">IAdoRepository 인스턴스</param>
 /// <param name="cmd">실행할 DbCommand</param>
 /// <param name="entity">실행할 Entity</param>
 /// <param name="nameMapper">Name Mapping Class</param>
 /// <returns>Command 인자 중에 ParameterDirection이 ReturnValue인 인자의 값</returns>
 public static object ExecuteEntity <T>(this IAdoRepository repository, DbCommand cmd, T entity, INameMapper nameMapper)
 {
     return(repository.ExecuteEntity(cmd, entity, cmd.NameMapping(nameMapper)));
 }