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 { /// /// 实体解析器 /// public class TestEntityResolver : IEntityResolver { /// /// 获取表 /// /// 实体类型 public string GetTable( Type entity ) { return $"t_{entity.Name}"; } /// /// 获取架构 /// /// 实体类型 public string GetSchema( Type entity ) { return "s"; } /// /// 获取列名 /// /// 实体类型 /// 是否将属性名映射为列别名 public string GetColumns( bool propertyAsAlias ) { return "*"; } /// /// 获取列名 /// /// 实体类型 /// 列名表达式 /// 是否将属性名映射为列别名 public string GetColumns( Expression> columns, bool propertyAsAlias ) { return Lambda.GetLastNames( columns ).Select( column => $"t_{column}" ).Join(); } public string GetColumn( Expression> column ) { return $"t_{Lambda.GetLastName( column )}"; } public string GetColumn( Expression expression, Type entity, bool right ) { return $"t_{Lambda.GetLastName( expression, right )}"; } /// /// 获取类型 /// /// 表达式 /// 是否取右侧操作数 public Type GetType( Expression expression, bool right = false ) { return typeof( Sample ); } } }