mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-23 22:11:36 +08:00
Add SimpleClient.ChangeRepository
This commit is contained in:
parent
bb3a254bde
commit
9dfb3f2aba
@ -22,8 +22,10 @@ namespace OrmTest
|
|||||||
}
|
}
|
||||||
public class OrderDal:Repository<Order>
|
public class OrderDal:Repository<Order>
|
||||||
{
|
{
|
||||||
public void MyTest() {
|
public void MyTest()
|
||||||
|
{
|
||||||
|
base.CommQuery("1=1");
|
||||||
|
base.ChangeRepository<Repository<OrderItem>>().CommQuery("1=1");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public class Repository<T> : SimpleClient<T> where T : class, new()
|
public class Repository<T> : SimpleClient<T> where T : class, new()
|
||||||
@ -32,13 +34,18 @@ namespace OrmTest
|
|||||||
{
|
{
|
||||||
if (context == null)
|
if (context == null)
|
||||||
{
|
{
|
||||||
base.Context = new SqlSugarClient(new ConnectionConfig()
|
var db = new SqlSugarClient(new ConnectionConfig()
|
||||||
{
|
{
|
||||||
DbType = SqlSugar.DbType.SqlServer,
|
DbType = SqlSugar.DbType.SqlServer,
|
||||||
InitKeyType = InitKeyType.Attribute,
|
InitKeyType = InitKeyType.Attribute,
|
||||||
IsAutoCloseConnection = true,
|
IsAutoCloseConnection = true,
|
||||||
ConnectionString = Config.ConnectionString
|
ConnectionString = Config.ConnectionString
|
||||||
});
|
});
|
||||||
|
base.Context = db;
|
||||||
|
db.Aop.OnLogExecuting = (s, p) =>
|
||||||
|
{
|
||||||
|
Console.WriteLine(s);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -46,10 +53,10 @@ namespace OrmTest
|
|||||||
/// 扩展方法,自带方法不能满足的时候可以添加新方法
|
/// 扩展方法,自带方法不能满足的时候可以添加新方法
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public List<T> CommQuery(string json)
|
public List<T> CommQuery(string sql)
|
||||||
{
|
{
|
||||||
//base.Context.Queryable<T>().ToList();可以拿到SqlSugarClient 做复杂操作
|
//base.Context.Queryable<T>().ToList();可以拿到SqlSugarClient 做复杂操作
|
||||||
return null;
|
return base.Context.Queryable<T>().Where(sql).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,7 @@ namespace SqlSugar
|
|||||||
public interface ISimpleClient<T> where T : class, new()
|
public interface ISimpleClient<T> where T : class, new()
|
||||||
{
|
{
|
||||||
SimpleClient<ChangeType> Change<ChangeType>() where ChangeType : class, new();
|
SimpleClient<ChangeType> Change<ChangeType>() where ChangeType : class, new();
|
||||||
|
RepositoryType ChangeRepository<RepositoryType>() where RepositoryType : ISugarRepository ;
|
||||||
IDeleteable<T> AsDeleteable();
|
IDeleteable<T> AsDeleteable();
|
||||||
IInsertable<T> AsInsertable(List<T> insertObjs);
|
IInsertable<T> AsInsertable(List<T> insertObjs);
|
||||||
IInsertable<T> AsInsertable(T insertObj);
|
IInsertable<T> AsInsertable(T insertObj);
|
||||||
|
@ -2,16 +2,17 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
|
using System.Reflection;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace SqlSugar
|
namespace SqlSugar
|
||||||
{
|
{
|
||||||
|
|
||||||
public partial class SimpleClient<T> : ISimpleClient<T> where T : class, new()
|
public partial class SimpleClient<T> : ISugarRepository,ISimpleClient<T> where T : class, new()
|
||||||
{
|
{
|
||||||
#region Interface
|
#region Interface
|
||||||
protected ISqlSugarClient Context { get; set; }
|
public ISqlSugarClient Context { get; set; }
|
||||||
|
|
||||||
public ITenant AsTenant()
|
public ITenant AsTenant()
|
||||||
{
|
{
|
||||||
@ -34,6 +35,17 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
return this.Context.GetSimpleClient<ChangeType>();
|
return this.Context.GetSimpleClient<ChangeType>();
|
||||||
}
|
}
|
||||||
|
public RepositoryType ChangeRepository<RepositoryType>() where RepositoryType : ISugarRepository
|
||||||
|
{
|
||||||
|
Type type = typeof(RepositoryType);
|
||||||
|
object o = Activator.CreateInstance(type,new string[]{ null});
|
||||||
|
var result= (RepositoryType)o;
|
||||||
|
if (result.Context == null)
|
||||||
|
{
|
||||||
|
result.Context = this.Context;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
public ISugarQueryable<T> AsQueryable()
|
public ISugarQueryable<T> AsQueryable()
|
||||||
{
|
{
|
||||||
return Context.Queryable<T>();
|
return Context.Queryable<T>();
|
||||||
@ -291,4 +303,9 @@ namespace SqlSugar
|
|||||||
[Obsolete("Use AsSugarClient()")]
|
[Obsolete("Use AsSugarClient()")]
|
||||||
public ISqlSugarClient FullClient { get { return this.Context; } }
|
public ISqlSugarClient FullClient { get { return this.Context; } }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface ISugarRepository
|
||||||
|
{
|
||||||
|
ISqlSugarClient Context { get; set; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user