sunkaixuan
7 years ago
2 changed files with 54 additions and 0 deletions
@ -0,0 +1,53 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using System.Text; |
|||
using SqlSugar; |
|||
using OrmTest.Models; |
|||
|
|||
namespace OrmTest.Demo |
|||
{ |
|||
public class ExtSqlFun : DemoBase |
|||
{ |
|||
public static SqlSugarClient GetDb() |
|||
{ |
|||
//Create ext method
|
|||
var expMethods = new List<SqlFuncExternal>(); |
|||
expMethods.Add(new SqlFuncExternal() |
|||
{ |
|||
UniqueMethodName = "MyToString", |
|||
MethodValue = (expInfo, dbType, expContext) => |
|||
{ |
|||
return string.Format("CAST({0} AS VARCHAR(MAX))", expInfo.Args[0].MemberName); |
|||
} |
|||
}); |
|||
|
|||
var config = new ConnectionConfig() |
|||
{ |
|||
ConnectionString = Config.ConnectionString, |
|||
DbType = DbType.SqlServer, |
|||
IsAutoCloseConnection = true, |
|||
ConfigureExternalServices = new ConfigureExternalServices() |
|||
{ |
|||
SqlFuncServices = expMethods//set ext method
|
|||
} |
|||
}; |
|||
|
|||
SqlSugarClient db = new SqlSugarClient(config); |
|||
return db; |
|||
} |
|||
|
|||
public static string MyToString<T>(T str) |
|||
{ |
|||
throw new NotSupportedException("Can only be used in expressions"); |
|||
} |
|||
|
|||
public static void Init() |
|||
{ |
|||
var db = GetDb(); |
|||
var list = db.Queryable<Student>().Where(it => MyToString(it.Id) == "1302583").ToList(); |
|||
var sql = db.Queryable<Student>().Where(it => MyToString(it.Id) == "1302583").ToSql(); |
|||
Console.WriteLine(sql); |
|||
} |
|||
} |
|||
} |
Loading…
Reference in new issue