dotnetcore / dotnetcore/FreeSql
希望能将Column特性的RereadSql也传递到 where 和order by 中
- Dominant language
- C#
- Stars
- 4.4k
- Forks
- 910
- PR merge metrics
- No merged PRs in 30d
Description
#### Feature 特性
1.希望能将Column特性的RereadSql也传递到 where 和order by 中
2. RereadSql参数值能提供一个预设值指向其所属的表名,如: [Column(RereadSql = "\_\_.first+\_\_.last")] , 生成的sql中这两个\_\_下划线替换为TableName
```c#
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();
var sssss = freesql.Select().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"
```
1. 目前 在where 和 orderby 中 full_name 未替换成 first+last
2. 如果 [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#
// c# code
```
#### 使用场景
1. 可以根据预期值进行查询或者排序
2. 在多表联合查询时候,在其他表中即使有相同字段名存在也可以准确的拿到预期值, 不会出现语法歧义
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.