Esempio n. 1
0
 /// <summary>
 /// Perform an <c>update versioned</c> on the entities. The update operation is performed in the database without reading the entities out of it.
 /// </summary>
 /// <param name="cancellationToken">A cancellation token that can be used to cancel the work</param>
 /// <returns>The number of updated entities.</returns>
 public Task <int> UpdateVersionedAsync(CancellationToken cancellationToken)
 {
     if (cancellationToken.IsCancellationRequested)
     {
         return(Task.FromCanceled <int>(cancellationToken));
     }
     try
     {
         return(_source.ExecuteUpdateAsync(DmlExpressionRewriter.PrepareExpression <TSource>(_source.Expression, _assignments.List), true, cancellationToken));
     }
     catch (Exception ex)
     {
         return(Task.FromException <int>(ex));
     }
 }
 /// <summary>
 /// Insert the entities. The insert operation is performed in the database without reading the entities out of it. Will use
 /// <c>INSERT INTO [...] SELECT FROM [...]</c> in the database.
 /// </summary>
 /// <param name="cancellationToken">A cancellation token that can be used to cancel the work</param>
 /// <returns>The number of inserted entities.</returns>
 public Task <int> InsertAsync(CancellationToken cancellationToken = default(CancellationToken))
 {
     if (cancellationToken.IsCancellationRequested)
     {
         return(Task.FromCanceled <int>(cancellationToken));
     }
     try
     {
         return(_source.ExecuteInsertAsync <TSource, TTarget>(DmlExpressionRewriter.PrepareExpression <TSource>(_source.Expression, _assignments.List), cancellationToken));
     }
     catch (Exception ex)
     {
         return(Task.FromException <int>(ex));
     }
 }
 /// <summary>
 /// Update all entities selected by the specified query. The update operation is performed in the database without reading the entities out of it.
 /// </summary>
 /// <typeparam name="TSource">The type of the elements of <paramref name="source" />.</typeparam>
 /// <param name="source">The query matching the entities to update.</param>
 /// <param name="expression">The update setters expressed as a member initialization of updated entities, e.g.
 /// <c>x => new Dog { Name = x.Name, Age = x.Age + 5 }</c>. Unset members are ignored and left untouched.</param>
 /// <param name="cancellationToken">A cancellation token that can be used to cancel the work</param>
 /// <returns>The number of updated entities.</returns>
 public static Task <int> UpdateAsync <TSource>(this IQueryable <TSource> source, Expression <Func <TSource, TSource> > expression, CancellationToken cancellationToken)
 {
     if (cancellationToken.IsCancellationRequested)
     {
         return(Task.FromCanceled <int>(cancellationToken));
     }
     try
     {
         return(ExecuteUpdateAsync(source, DmlExpressionRewriter.PrepareExpression(source.Expression, expression), false, cancellationToken));
     }
     catch (Exception ex)
     {
         return(Task.FromException <int>(ex));
     }
 }
Esempio n. 4
0
 /// <summary>
 /// Insert all entities selected by the specified query. The insert operation is performed in the database without reading the entities out of it.
 /// </summary>
 /// <typeparam name="TSource">The type of the elements of <paramref name="source" />.</typeparam>
 /// <typeparam name="TTarget">The type of the entities to insert.</typeparam>
 /// <param name="source">The query matching entities source of the data to insert.</param>
 /// <param name="expression">The expression projecting a source entity to the entity to insert.</param>
 /// <param name="cancellationToken">A cancellation token that can be used to cancel the work</param>
 /// <returns>The number of inserted entities.</returns>
 public static Task <int> InsertIntoAsync <TSource, TTarget>(this IQueryable <TSource> source, Expression <Func <TSource, TTarget> > expression, CancellationToken cancellationToken = default(CancellationToken))
 {
     if (cancellationToken.IsCancellationRequested)
     {
         return(Task.FromCanceled <int>(cancellationToken));
     }
     try
     {
         return(ExecuteInsertAsync <TSource, TTarget>(source, DmlExpressionRewriter.PrepareExpression(source.Expression, expression), cancellationToken));
     }
     catch (Exception ex)
     {
         return(Task.FromException <int>(ex));
     }
 }
Esempio n. 5
0
 /// <summary>
 /// Perform an <c>update versioned</c> on the entities. The update operation is performed in the database without reading the entities out of it.
 /// </summary>
 /// <returns>The number of updated entities.</returns>
 public int UpdateVersioned()
 {
     return(_source.ExecuteUpdate(DmlExpressionRewriter.PrepareExpression <TSource>(_source.Expression, _assignments.List), true));
 }
 /// <summary>
 /// Perform an <c>update versioned</c> on all entities selected by the specified query. The update operation is performed in the database without
 /// reading the entities out of it.
 /// </summary>
 /// <typeparam name="TSource">The type of the elements of <paramref name="source" />.</typeparam>
 /// <param name="source">The query matching the entities to update.</param>
 /// <param name="expression">The update setters expressed as a member initialization of updated entities, e.g.
 /// <c>x => new Dog { Name = x.Name, Age = x.Age + 5 }</c>. Unset members are ignored and left untouched.</param>
 /// <returns>The number of updated entities.</returns>
 public static int UpdateVersioned <TSource>(this IQueryable <TSource> source, Expression <Func <TSource, TSource> > expression)
 {
     return(ExecuteUpdate(source, DmlExpressionRewriter.PrepareExpression(source.Expression, expression), true));
 }
 /// <summary>
 /// Insert all entities selected by the specified query. The insert operation is performed in the database without reading the entities out of it.
 /// </summary>
 /// <typeparam name="TSource">The type of the elements of <paramref name="source" />.</typeparam>
 /// <typeparam name="TTarget">The type of the entities to insert.</typeparam>
 /// <param name="source">The query matching entities source of the data to insert.</param>
 /// <param name="expression">The expression projecting a source entity to the entity to insert.</param>
 /// <returns>The number of inserted entities.</returns>
 public static int InsertInto <TSource, TTarget>(this IQueryable <TSource> source, Expression <Func <TSource, TTarget> > expression)
 {
     return(ExecuteInsert <TSource, TTarget>(source, DmlExpressionRewriter.PrepareExpression(source.Expression, expression)));
 }