Remove redundant typed fluent wrapper methods

This commit is contained in:
root
2026-02-26 18:40:43 +01:00
parent 33cadaf05b
commit f28549c775
3 changed files with 10 additions and 61 deletions

View File

@@ -7386,30 +7386,6 @@ namespace DynamORM
/// <summary>Marker extensions for typed fluent builder expressions.</summary> /// <summary>Marker extensions for typed fluent builder expressions.</summary>
public static class TypedFluentExtensions public static class TypedFluentExtensions
{ {
/// <summary>Typed select helper that avoids overload resolution with dynamic methods.</summary>
public static IDynamicTypedSelectQueryBuilder<TModel> SelectTyped<TModel, TResult>(
this IDynamicTypedSelectQueryBuilder<TModel> builder,
System.Linq.Expressions.Expression<System.Func<TModel, TResult>> selector,
params System.Linq.Expressions.Expression<System.Func<TModel, TResult>>[] selectors)
{
return builder.Select(selector, selectors);
}
/// <summary>Typed group by helper that avoids overload resolution with dynamic methods.</summary>
public static IDynamicTypedSelectQueryBuilder<TModel> GroupByTyped<TModel, TResult>(
this IDynamicTypedSelectQueryBuilder<TModel> builder,
System.Linq.Expressions.Expression<System.Func<TModel, TResult>> selector,
params System.Linq.Expressions.Expression<System.Func<TModel, TResult>>[] selectors)
{
return builder.GroupBy(selector, selectors);
}
/// <summary>Typed order by helper that avoids overload resolution with dynamic methods.</summary>
public static IDynamicTypedSelectQueryBuilder<TModel> OrderByTyped<TModel, TResult>(
this IDynamicTypedSelectQueryBuilder<TModel> builder,
System.Linq.Expressions.Expression<System.Func<TModel, TResult>> selector,
params System.Linq.Expressions.Expression<System.Func<TModel, TResult>>[] selectors)
{
return builder.OrderBy(selector, selectors);
}
/// <summary>Marks select projection alias in typed expressions.</summary> /// <summary>Marks select projection alias in typed expressions.</summary>
public static T As<T>(this T source, string alias) public static T As<T>(this T source, string alias)
{ {

View File

@@ -58,8 +58,8 @@ namespace DynamORM.Tests.Select
{ {
var cmd = Database.From<TypedFluentUser>("u") var cmd = Database.From<TypedFluentUser>("u")
.Where(u => u.Id == 1) .Where(u => u.Id == 1)
.SelectTyped(u => u.Code.As("CodeAlias")) .Select(u => u.Code.As("CodeAlias"))
.OrderByTyped(u => u.Code.Desc()); .OrderBy(u => u.Code.Desc());
Assert.AreEqual( Assert.AreEqual(
string.Format("SELECT u.\"user_code\" AS \"CodeAlias\" FROM \"sample_users\" AS u WHERE (u.\"id_user\" = [${0}]) ORDER BY u.\"user_code\" DESC", cmd.Parameters.Keys.First()), string.Format("SELECT u.\"user_code\" AS \"CodeAlias\" FROM \"sample_users\" AS u WHERE (u.\"id_user\" = [${0}]) ORDER BY u.\"user_code\" DESC", cmd.Parameters.Keys.First()),
@@ -73,7 +73,7 @@ namespace DynamORM.Tests.Select
var cmd = Database.From<TypedFluentUser>("u") var cmd = Database.From<TypedFluentUser>("u")
.Where(u => ids.Contains(u.Id)) .Where(u => ids.Contains(u.Id))
.SelectTyped(u => u.Id); .Select(u => u.Id);
Assert.AreEqual( Assert.AreEqual(
string.Format("SELECT u.\"id_user\" FROM \"sample_users\" AS u WHERE (u.\"id_user\" IN([${0}], [${1}], [${2}]))", string.Format("SELECT u.\"id_user\" FROM \"sample_users\" AS u WHERE (u.\"id_user\" IN([${0}], [${1}], [${2}]))",
@@ -87,10 +87,10 @@ namespace DynamORM.Tests.Select
public void TestTypedGroupByHavingOrderBy() public void TestTypedGroupByHavingOrderBy()
{ {
var cmd = Database.From<TypedFluentUser>("u") var cmd = Database.From<TypedFluentUser>("u")
.SelectTyped(u => u.Code) .Select(u => u.Code)
.GroupByTyped(u => u.Code) .GroupBy(u => u.Code)
.Having(u => u.Code != null) .Having(u => u.Code != null)
.OrderByTyped(u => u.Code.Asc()); .OrderBy(u => u.Code.Asc());
Assert.AreEqual("SELECT u.\"user_code\" FROM \"sample_users\" AS u GROUP BY u.\"user_code\" HAVING (u.\"user_code\" IS NOT NULL) ORDER BY u.\"user_code\" ASC", Assert.AreEqual("SELECT u.\"user_code\" FROM \"sample_users\" AS u GROUP BY u.\"user_code\" HAVING (u.\"user_code\" IS NOT NULL) ORDER BY u.\"user_code\" ASC",
cmd.CommandText()); cmd.CommandText());
@@ -101,7 +101,7 @@ namespace DynamORM.Tests.Select
{ {
var cmd = Database.From<TypedFluentUser>("u") var cmd = Database.From<TypedFluentUser>("u")
.Join<TypedFluentUser>((l, r) => l.Id == r.Id, "x") .Join<TypedFluentUser>((l, r) => l.Id == r.Id, "x")
.SelectTyped(u => u.Id); .Select(u => u.Id);
Assert.AreEqual("SELECT u.\"id_user\" FROM \"sample_users\" AS u INNER JOIN \"sample_users\" AS x ON (u.\"id_user\" = x.\"id_user\")", Assert.AreEqual("SELECT u.\"id_user\" FROM \"sample_users\" AS u INNER JOIN \"sample_users\" AS x ON (u.\"id_user\" = x.\"id_user\")",
cmd.CommandText()); cmd.CommandText());
@@ -112,7 +112,7 @@ namespace DynamORM.Tests.Select
{ {
var cmd = Database.From<TypedFluentUser>("u") var cmd = Database.From<TypedFluentUser>("u")
.LeftJoin<TypedFluentUser>((l, r) => l.Id == r.Id, "x") .LeftJoin<TypedFluentUser>((l, r) => l.Id == r.Id, "x")
.SelectTyped(u => u.Id); .Select(u => u.Id);
Assert.AreEqual("SELECT u.\"id_user\" FROM \"sample_users\" AS u LEFT JOIN \"sample_users\" AS x ON (u.\"id_user\" = x.\"id_user\")", Assert.AreEqual("SELECT u.\"id_user\" FROM \"sample_users\" AS u LEFT JOIN \"sample_users\" AS x ON (u.\"id_user\" = x.\"id_user\")",
cmd.CommandText()); cmd.CommandText());
@@ -123,7 +123,7 @@ namespace DynamORM.Tests.Select
{ {
var cmd = Database.From<TypedFluentUser>("u") var cmd = Database.From<TypedFluentUser>("u")
.RightJoin<TypedFluentUser>((l, r) => l.Id == r.Id, "x") .RightJoin<TypedFluentUser>((l, r) => l.Id == r.Id, "x")
.SelectTyped(u => u.Id); .Select(u => u.Id);
Assert.AreEqual("SELECT u.\"id_user\" FROM \"sample_users\" AS u RIGHT JOIN \"sample_users\" AS x ON (u.\"id_user\" = x.\"id_user\")", Assert.AreEqual("SELECT u.\"id_user\" FROM \"sample_users\" AS u RIGHT JOIN \"sample_users\" AS x ON (u.\"id_user\" = x.\"id_user\")",
cmd.CommandText()); cmd.CommandText());
@@ -134,7 +134,7 @@ namespace DynamORM.Tests.Select
{ {
var cmd = Database.From<TypedFluentUser>("u") var cmd = Database.From<TypedFluentUser>("u")
.FullJoin<TypedFluentUser>((l, r) => l.Id == r.Id, "x") .FullJoin<TypedFluentUser>((l, r) => l.Id == r.Id, "x")
.SelectTyped(u => u.Id); .Select(u => u.Id);
Assert.AreEqual("SELECT u.\"id_user\" FROM \"sample_users\" AS u FULL JOIN \"sample_users\" AS x ON (u.\"id_user\" = x.\"id_user\")", Assert.AreEqual("SELECT u.\"id_user\" FROM \"sample_users\" AS u FULL JOIN \"sample_users\" AS x ON (u.\"id_user\" = x.\"id_user\")",
cmd.CommandText()); cmd.CommandText());

View File

@@ -31,33 +31,6 @@ namespace DynamORM.Builders
/// <summary>Marker extensions for typed fluent builder expressions.</summary> /// <summary>Marker extensions for typed fluent builder expressions.</summary>
public static class TypedFluentExtensions public static class TypedFluentExtensions
{ {
/// <summary>Typed select helper that avoids overload resolution with dynamic methods.</summary>
public static IDynamicTypedSelectQueryBuilder<TModel> SelectTyped<TModel, TResult>(
this IDynamicTypedSelectQueryBuilder<TModel> builder,
System.Linq.Expressions.Expression<System.Func<TModel, TResult>> selector,
params System.Linq.Expressions.Expression<System.Func<TModel, TResult>>[] selectors)
{
return builder.Select(selector, selectors);
}
/// <summary>Typed group by helper that avoids overload resolution with dynamic methods.</summary>
public static IDynamicTypedSelectQueryBuilder<TModel> GroupByTyped<TModel, TResult>(
this IDynamicTypedSelectQueryBuilder<TModel> builder,
System.Linq.Expressions.Expression<System.Func<TModel, TResult>> selector,
params System.Linq.Expressions.Expression<System.Func<TModel, TResult>>[] selectors)
{
return builder.GroupBy(selector, selectors);
}
/// <summary>Typed order by helper that avoids overload resolution with dynamic methods.</summary>
public static IDynamicTypedSelectQueryBuilder<TModel> OrderByTyped<TModel, TResult>(
this IDynamicTypedSelectQueryBuilder<TModel> builder,
System.Linq.Expressions.Expression<System.Func<TModel, TResult>> selector,
params System.Linq.Expressions.Expression<System.Func<TModel, TResult>>[] selectors)
{
return builder.OrderBy(selector, selectors);
}
/// <summary>Marks select projection alias in typed expressions.</summary> /// <summary>Marks select projection alias in typed expressions.</summary>
public static T As<T>(this T source, string alias) public static T As<T>(this T source, string alias)
{ {