-
Notifications
You must be signed in to change notification settings - Fork 888
Open
Description
Feature 特性
1.希望能将Column特性的RereadSql也传递到 where 和order by 中
2. RereadSql参数值能提供一个预设值指向其所属的表名,如: [Column(RereadSql = "__.first+__.last")] , 生成的sql中这两个__下划线替换为TableName
public class TableName
{
public int Id { get; set; }
[Column(RereadSql = "first+last")]
public string full_name { get; set; }
public string first { get; set; } = "1";
public string last { get; set; } = "2";
}
var freesql = new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.Sqlite, @"Data Source=:memory:").Build();
freesql.CodeFirst.SyncStructure<TableName>();
var sssss = freesql.Select<TableName>().Where(a => a.full_name == "12").OrderBy(a=>a.full_name).ToSql();
sssss :
SELECT a."Id", first+last "full_name", a."first", a."last"
FROM "Table" a
WHERE (a."full_name" = '12')
ORDER BY a."full_name"
-
目前 在where 和 orderby 中 full_name 未替换成 first+last
-
如果 [Column(RereadSql = "__.first+__.last")]
希望sql是;
SELECT a."Id", a.first+a.last "full_name", a."first", a."last"
FROM "Table" a
WHERE ((a."first" +a."last") = '12')
ORDER BY (a."first" +a."last")
简要描述原因
// c# code
使用场景
- 可以根据预期值进行查询或者排序
- 在多表联合查询时候,在其他表中即使有相同字段名存在也可以准确的拿到预期值, 不会出现语法歧义
Metadata
Metadata
Assignees
Labels
No labels