mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-23 13:06:50 +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 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()
|
||||
@ -32,13 +34,18 @@ namespace OrmTest
|
||||
{
|
||||
if (context == null)
|
||||
{
|
||||
base.Context = new SqlSugarClient(new ConnectionConfig()
|
||||
var db = new SqlSugarClient(new ConnectionConfig()
|
||||
{
|
||||
DbType = SqlSugar.DbType.SqlServer,
|
||||
InitKeyType = InitKeyType.Attribute,
|
||||
IsAutoCloseConnection = true,
|
||||
ConnectionString = Config.ConnectionString
|
||||
});
|
||||
base.Context = db;
|
||||
db.Aop.OnLogExecuting = (s, p) =>
|
||||
{
|
||||
Console.WriteLine(s);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@ -46,10 +53,10 @@ namespace OrmTest
|
||||
/// 扩展方法,自带方法不能满足的时候可以添加新方法
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public List<T> CommQuery(string json)
|
||||
public List<T> CommQuery(string sql)
|
||||
{
|
||||
//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()
|
||||
{
|
||||
SimpleClient<ChangeType> Change<ChangeType>() where ChangeType : class, new();
|
||||
RepositoryType ChangeRepository<RepositoryType>() where RepositoryType : ISugarRepository ;
|
||||
IDeleteable<T> AsDeleteable();
|
||||
IInsertable<T> AsInsertable(List<T> insertObjs);
|
||||
IInsertable<T> AsInsertable(T insertObj);
|
||||
|
@ -2,16 +2,17 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
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
|
||||
protected ISqlSugarClient Context { get; set; }
|
||||
public ISqlSugarClient Context { get; set; }
|
||||
|
||||
public ITenant AsTenant()
|
||||
{
|
||||
@ -34,6 +35,17 @@ namespace SqlSugar
|
||||
{
|
||||
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()
|
||||
{
|
||||
return Context.Queryable<T>();
|
||||
@ -291,4 +303,9 @@ namespace SqlSugar
|
||||
[Obsolete("Use AsSugarClient()")]
|
||||
public ISqlSugarClient FullClient { get { return this.Context; } }
|
||||
}
|
||||
|
||||
public interface ISugarRepository
|
||||
{
|
||||
ISqlSugarClient Context { get; set; }
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user