You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
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); } } }
|