44 lines
2.0 KiB
C#
44 lines
2.0 KiB
C#
/*
|
|
* DynamORM - Dynamic Object-Relational Mapping library.
|
|
* Copyright (c) 2012-2026, Grzegorz Russek (grzegorz.russek@gmail.com)
|
|
* All rights reserved.
|
|
*/
|
|
|
|
using System;
|
|
using System.Linq.Expressions;
|
|
using DynamORM.TypedSql;
|
|
|
|
namespace DynamORM.Builders
|
|
{
|
|
/// <summary>Typed update query builder for mapped entities.</summary>
|
|
/// <typeparam name="T">Mapped entity type.</typeparam>
|
|
public interface IDynamicTypedUpdateQueryBuilder<T> : IDynamicUpdateQueryBuilder
|
|
{
|
|
/// <summary>Add typed where predicate using mapped properties.</summary>
|
|
/// <param name="predicate">Predicate to parse.</param>
|
|
/// <returns>Builder instance.</returns>
|
|
IDynamicTypedUpdateQueryBuilder<T> Where(Expression<Func<T, bool>> predicate);
|
|
|
|
/// <summary>Add typed assignment using mapped property selector.</summary>
|
|
/// <typeparam name="TValue">Property type.</typeparam>
|
|
/// <param name="selector">Property selector.</param>
|
|
/// <param name="value">Assigned value.</param>
|
|
/// <returns>Builder instance.</returns>
|
|
IDynamicTypedUpdateQueryBuilder<T> Set<TValue>(Expression<Func<T, TValue>> selector, object value);
|
|
|
|
/// <summary>Add update values from mapped object.</summary>
|
|
/// <param name="value">Mapped object value.</param>
|
|
/// <returns>Builder instance.</returns>
|
|
IDynamicTypedUpdateQueryBuilder<T> Values(T value);
|
|
|
|
/// <summary>Add typed SQL DSL where predicate.</summary>
|
|
IDynamicTypedUpdateQueryBuilder<T> WhereSql(Func<TypedTableContext<T>, TypedSqlPredicate> predicate);
|
|
|
|
/// <summary>Add typed SQL DSL assignment.</summary>
|
|
IDynamicTypedUpdateQueryBuilder<T> SetSql<TValue>(Expression<Func<T, TValue>> selector, Func<TypedTableContext<T>, TypedSqlExpression> valueFactory);
|
|
|
|
/// <summary>Add typed SQL DSL assignments from object projection.</summary>
|
|
IDynamicTypedUpdateQueryBuilder<T> SetSql(Func<TypedTableContext<T>, object> values);
|
|
}
|
|
}
|