mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-19 04:18:16 +08:00
- 增加 ISelect.OrderBy 重载,与 WhereIf 相同行为;
- 修复 Aop.ParseExpression 使用 FreeParse 方法死循环的 bug;
This commit is contained in:
@ -258,9 +258,43 @@ namespace FreeSql.Tests {
|
||||
public Templates Templates { get; set; }
|
||||
}
|
||||
|
||||
public class SqlFunc {
|
||||
public static string FormatDateTime() {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Test1() {
|
||||
|
||||
g.sqlite.Aop.ParseExpression = (s, e) => {
|
||||
if (e.Expression.NodeType == ExpressionType.Call) {
|
||||
var callExp = e.Expression as MethodCallExpression;
|
||||
if (callExp.Object.Type == typeof(DateTime) &&
|
||||
callExp.Method.Name == "ToString" &&
|
||||
callExp.Arguments.Count == 1 &&
|
||||
callExp.Arguments[0].Type == typeof(string) &&
|
||||
callExp.Arguments[0].NodeType == ExpressionType.Constant) {
|
||||
var format = (callExp.Arguments[0] as ConstantExpression)?.Value?.ToString();
|
||||
|
||||
if (string.IsNullOrEmpty(format) == false) {
|
||||
var tmp = e.FreeParse(callExp.Object);
|
||||
|
||||
switch(format) {
|
||||
case "yyyy-MM-dd HH:mm":
|
||||
tmp = $"date_format({tmp}, '%Y-%m-%d %H:%i')";
|
||||
break;
|
||||
}
|
||||
e.Result = tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
g.mysql.Select<NewsArticle>().ToList(a => new {
|
||||
testaddtime = a.testaddtime.ToString("yyyy-MM-dd HH:mm")
|
||||
});
|
||||
|
||||
var ttdkdk = g.mysql.Select<NewsArticle>().Where<TaskBuild>(a => a.NamespaceName == "ddd").ToSql();
|
||||
|
||||
var tsqlddd = g.sqlite.Select<NewsArticle>().Where(a =>
|
||||
|
Reference in New Issue
Block a user