mirror of
https://github.com/dotnetcore/Util.git
synced 2026-10-29 03:26:31 +08:00
65 lines
2.1 KiB
C#
65 lines
2.1 KiB
C#
using System;
|
|
using System.Linq;
|
|
using System.Linq.Expressions;
|
|
using Util.Datas.Sql.Builders;
|
|
using Util.Datas.Tests.Samples;
|
|
using Util.Helpers;
|
|
|
|
namespace Util.Datas.Tests.Sql.Builders.Samples {
|
|
/// <summary>
|
|
/// 实体解析器
|
|
/// </summary>
|
|
public class TestEntityResolver : IEntityResolver {
|
|
/// <summary>
|
|
/// 获取表
|
|
/// </summary>
|
|
/// <param name="entity">实体类型</param>
|
|
public string GetTable( Type entity ) {
|
|
return $"t_{entity.Name}";
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取架构
|
|
/// </summary>
|
|
/// <param name="entity">实体类型</param>
|
|
public string GetSchema( Type entity ) {
|
|
return "s";
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取列名
|
|
/// </summary>
|
|
/// <typeparam name="TEntity">实体类型</typeparam>
|
|
/// <param name="propertyAsAlias">是否将属性名映射为列别名</param>
|
|
public string GetColumns<TEntity>( bool propertyAsAlias ) {
|
|
return "*";
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取列名
|
|
/// </summary>
|
|
/// <typeparam name="TEntity">实体类型</typeparam>
|
|
/// <param name="columns">列名表达式</param>
|
|
/// <param name="propertyAsAlias">是否将属性名映射为列别名</param>
|
|
public string GetColumns<TEntity>( Expression<Func<TEntity, object[]>> columns, bool propertyAsAlias ) {
|
|
return Lambda.GetLastNames( columns ).Select( column => $"t_{column}" ).Join();
|
|
}
|
|
|
|
public string GetColumn<TEntity>( Expression<Func<TEntity, object>> column ) {
|
|
return $"t_{Lambda.GetLastName( column )}";
|
|
}
|
|
|
|
public string GetColumn( Expression expression, Type entity, bool right ) {
|
|
return $"t_{Lambda.GetLastName( expression, right )}";
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取类型
|
|
/// </summary>
|
|
/// <param name="expression">表达式</param>
|
|
/// <param name="right">是否取右侧操作数</param>
|
|
public Type GetType( Expression expression, bool right = false ) {
|
|
return typeof( Sample );
|
|
}
|
|
}
|
|
} |