mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-04-29 01:47:06 +08:00
-
This commit is contained in:
parent
a7cd1a541a
commit
6c6b98a77d
@ -93,9 +93,9 @@ namespace OrmTest.Demo
|
||||
var list = db.Queryable<Student, School>((st, sc) => new object[] {
|
||||
JoinType.Left,st.SchoolId==sc.Id
|
||||
})
|
||||
.Where<School>(sc => sc.Id == 1)
|
||||
.Where<Student>(st => st.Id == 1)
|
||||
.Where<Student, School>((st, sc) => st.Id == 1 && sc.Id == 2).ToList();
|
||||
.Where((st,sc)=> sc.Id == 1)
|
||||
.Where((st,sc) => st.Id == 1)
|
||||
.Where((st, sc) => st.Id == 1 && sc.Id == 2).ToList();
|
||||
|
||||
//SELECT [st].[Id],[st].[SchoolId],[st].[Name],[st].[CreateTime] FROM [Student] st
|
||||
//Left JOIN School sc ON ( [st].[SchoolId] = [sc].[Id] )
|
||||
@ -126,15 +126,15 @@ namespace OrmTest.Demo
|
||||
//join return List<ViewModelStudent>
|
||||
var list3 = db.Queryable<Student, School>((st, sc) => new object[] {
|
||||
JoinType.Left,st.SchoolId==sc.Id
|
||||
}).Select<Student,School,ViewModelStudent>((st,sc)=>new ViewModelStudent { Name= st.Name,SchoolId=sc.Id }).ToList();
|
||||
}).Select((st,sc)=>new ViewModelStudent { Name= st.Name,SchoolId=sc.Id }).ToList();
|
||||
|
||||
//join Order By (order by st.id desc,sc.id desc)
|
||||
var list4 = db.Queryable<Student, School>((st, sc) => new object[] {
|
||||
JoinType.Left,st.SchoolId==sc.Id
|
||||
})
|
||||
.OrderBy(st=>st.Id,OrderByType.Desc)
|
||||
.OrderBy<School>(sc=>sc.Id,OrderByType.Desc)
|
||||
.Select<Student, School, ViewModelStudent>((st, sc) => new ViewModelStudent { Name = st.Name, SchoolId = sc.Id }).ToList();
|
||||
.OrderBy((st,sc)=>sc.Id,OrderByType.Desc)
|
||||
.Select((st, sc) => new ViewModelStudent { Name = st.Name, SchoolId = sc.Id }).ToList();
|
||||
}
|
||||
public static void Funs()
|
||||
{
|
||||
@ -184,6 +184,12 @@ namespace OrmTest.Demo
|
||||
var s3 = db.Queryable<Student>().Select(it => new { newid = it.Id }).ToList();
|
||||
var s4 = db.Queryable<Student>().Select(it => new { newid = it.Id, obj = it }).ToList();
|
||||
var s5 = db.Queryable<Student>().Select(it => new ViewModelStudent2 { Student = it, Name = it.Name }).ToList();
|
||||
var s6 = db.Queryable<Student, School>((st, sc) => new object[] {
|
||||
JoinType.Left,st.SchoolId==sc.Id
|
||||
})
|
||||
.OrderBy(st => st.Id, OrderByType.Desc)
|
||||
.OrderBy((st, sc) => sc.Id, OrderByType.Desc)
|
||||
.Select((st, sc) => new { Name = st.Name, SchoolId = sc.Id }).ToList();
|
||||
}
|
||||
|
||||
private static void Sqlable()
|
||||
|
@ -27,11 +27,11 @@ namespace OrmTest.UnitTest
|
||||
JoinType.Left,st.SchoolId==sc.Id
|
||||
})
|
||||
.Where(st => st.Id == 1)
|
||||
.Where<School>(sc => sc.Id == 1)
|
||||
.Where<School, Student>((sc, st) => sc.Id == st.Id)
|
||||
.Where((st,sc) => sc.Id == 1)
|
||||
.Where((st,sc) => sc.Id == st.Id)
|
||||
.GroupBy(st => st.Id)
|
||||
.GroupBy<School>(sc => sc.Id).OrderBy<Student>(st => st.Id,OrderByType.Asc)
|
||||
.Select<Student,School,dynamic>((st,sc)=> new { stid=st.Id,scid=sc.Id}).ToSql();
|
||||
.GroupBy((st,sc) => sc.Id).OrderBy(st => st.Id,OrderByType.Asc)
|
||||
.Select((st,sc)=> new { stid=st.Id,scid=sc.Id}).ToSql();
|
||||
base.Check(@"SELECT [st].[ID] AS [stid] , [sc].[id] AS [scid] FROM [STudent] st Left JOIN School sc ON ( [st].[SchoolId] =[sc].[id]) WHERE ( [st].[ID] = @Id0 ) AND ( [sc].[id] = @Id1 ) AND ( [sc].[id] = [st].[ID] )GROUP BY [st].[ID],[sc].[id]ORDER BY [st].[ID] ASC ",
|
||||
null, t2.Key, null, " Mapping t2 error");
|
||||
var x2 = GetInstance();
|
||||
|
@ -62,7 +62,7 @@ namespace OrmTest.UnitTest
|
||||
JoinType.Left,st.Id==st2.Id
|
||||
})
|
||||
.Where(st => st.Id > 0)
|
||||
.Select<School, School, dynamic>((st, st2) => new { stid = st.Id, scId = st2.Id, xx = st }).ToSql();
|
||||
.Select((st, st2) => new { stid = st.Id, scId = st2.Id, xx = st }).ToSql();
|
||||
|
||||
base.Check("SELECT [st].[Id] AS [stid] , [st2].[Id] AS [scId] , [st].[Id] AS [School.Id] , [st].[Name] AS [School.Name] FROM [School] st Left JOIN School st2 ON ( [st].[Id] = [st2].[Id] ) WHERE ( [st].[Id] > @Id0 ) "
|
||||
, new List<SugarParameter>() {
|
||||
|
@ -10,16 +10,54 @@ using System.Text.RegularExpressions;
|
||||
|
||||
namespace SqlSugar
|
||||
{
|
||||
public partial class QueryableProvider<T, T2,T3,T4> : QueryableProvider<T>, ISugarQueryable<T, T2,T3,T4>
|
||||
public partial class QueryableProvider<T, T2, T3, T4> : QueryableProvider<T>, ISugarQueryable<T, T2, T3, T4>
|
||||
{
|
||||
|
||||
}
|
||||
public partial class QueryableProvider<T, T2,T3> : QueryableProvider<T>, ISugarQueryable<T, T2,T3>
|
||||
public partial class QueryableProvider<T, T2, T3> : QueryableProvider<T>, ISugarQueryable<T, T2, T3>
|
||||
{
|
||||
|
||||
}
|
||||
public partial class QueryableProvider<T,T2> : QueryableProvider<T>,ISugarQueryable<T,T2>{
|
||||
public partial class QueryableProvider<T, T2> : QueryableProvider<T>, ISugarQueryable<T, T2>
|
||||
{
|
||||
public new ISugarQueryable<T, T2> Where(Expression<Func<T, bool>> expression) {
|
||||
_Where(expression);
|
||||
return this;
|
||||
}
|
||||
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, TResult>> expression)
|
||||
{
|
||||
return _Select<TResult>(expression);
|
||||
}
|
||||
|
||||
public ISugarQueryable<T, T2> Where(Expression<Func<T, T2, bool>> expression)
|
||||
{
|
||||
_Where(expression);
|
||||
return this;
|
||||
}
|
||||
|
||||
public ISugarQueryable<T, T2> OrderBy(Expression<Func<T, T2, object>> expression, OrderByType type = OrderByType.Asc)
|
||||
{
|
||||
this._OrderBy(expression, type);
|
||||
return this;
|
||||
}
|
||||
|
||||
public new ISugarQueryable<T, T2> OrderBy(Expression<Func<T, object>> expression, OrderByType type)
|
||||
{
|
||||
this._OrderBy(expression, type);
|
||||
return this;
|
||||
}
|
||||
|
||||
public new ISugarQueryable<T, T2> GroupBy(Expression<Func<T, object>> expression)
|
||||
{
|
||||
_GroupBy(expression);
|
||||
return this;
|
||||
}
|
||||
|
||||
public ISugarQueryable<T, T2> GroupBy(Expression<Func<T, T2, object>> expression)
|
||||
{
|
||||
_GroupBy(expression);
|
||||
return this;
|
||||
}
|
||||
}
|
||||
public partial class QueryableProvider<T> : QueryableAccessory, ISugarQueryable<T>
|
||||
{
|
||||
@ -609,7 +647,7 @@ namespace SqlSugar
|
||||
|
||||
|
||||
#region Private Methods
|
||||
private ISugarQueryable<TResult> _Select<TResult>(Expression expression)
|
||||
protected ISugarQueryable<TResult> _Select<TResult>(Expression expression)
|
||||
{
|
||||
var reval = InstanceFactory.GetQueryable<TResult>(this.Context.CurrentConnectionConfig);
|
||||
reval.Context = this.Context;
|
||||
@ -645,7 +683,7 @@ namespace SqlSugar
|
||||
Having(lamResult.GetResultString());
|
||||
return this;
|
||||
}
|
||||
private List<TResult> _ToList<TResult>()
|
||||
protected List<TResult> _ToList<TResult>()
|
||||
{
|
||||
List<TResult> result = null;
|
||||
var sqlObj = this.ToSql();
|
||||
@ -666,7 +704,7 @@ namespace SqlSugar
|
||||
RestoreMapping();
|
||||
return result;
|
||||
}
|
||||
private List<string> GetPrimaryKeys()
|
||||
protected List<string> GetPrimaryKeys()
|
||||
{
|
||||
if (this.Context.IsSystemTablesConfig)
|
||||
{
|
||||
@ -677,7 +715,7 @@ namespace SqlSugar
|
||||
return this.EntityInfo.Columns.Where(it => it.IsPrimarykey).Select(it => it.DbColumnName).ToList();
|
||||
}
|
||||
}
|
||||
private List<string> GetIdentityKeys()
|
||||
protected List<string> GetIdentityKeys()
|
||||
{
|
||||
if (this.Context.IsSystemTablesConfig)
|
||||
{
|
||||
@ -688,7 +726,7 @@ namespace SqlSugar
|
||||
return this.EntityInfo.Columns.Where(it => it.IsIdentity).Select(it => it.DbColumnName).ToList();
|
||||
}
|
||||
}
|
||||
private void RestoreMapping()
|
||||
protected void RestoreMapping()
|
||||
{
|
||||
if (IsAs)
|
||||
{
|
||||
|
@ -85,7 +85,23 @@ namespace SqlSugar
|
||||
{
|
||||
if (readerValues.ContainsKey(name))
|
||||
{
|
||||
result.Add(name, readerValues[name]);
|
||||
var addValue = readerValues[name];
|
||||
if (addValue == DBNull.Value)
|
||||
{
|
||||
if (item.PropertyType.IsIn(PubConst.IntType, PubConst.DecType, PubConst.Dob, PubConst.ByteType))
|
||||
{
|
||||
addValue = 0;
|
||||
}
|
||||
else if (item.PropertyType == PubConst.GuidType)
|
||||
{
|
||||
addValue = Guid.Empty;
|
||||
}
|
||||
else if (item.PropertyType == PubConst.GuidType)
|
||||
{
|
||||
addValue = DateTime.MinValue;
|
||||
}
|
||||
}
|
||||
result.Add(name, addValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -21,27 +21,27 @@ namespace SqlSugar
|
||||
|
||||
ISugarQueryable<T> Where(Expression<Func<T, bool>> expression);
|
||||
ISugarQueryable<T> Where(string whereString, object whereObj = null);
|
||||
ISugarQueryable<T> Where<T2>(Expression<Func<T2, bool>> expression);
|
||||
ISugarQueryable<T> Where<T2, T3>(Expression<Func<T2, T3, bool>> expression);
|
||||
ISugarQueryable<T> Where<T2, T3, T4>(Expression<Func<T2, T3, T4, bool>> expression);
|
||||
ISugarQueryable<T> Where<T2, T3, T4, T5>(Expression<Func<T2, T3, T4, T5, bool>> expression);
|
||||
ISugarQueryable<T> Where<T2, T3, T4, T5, T6>(Expression<Func<T2, T3, T4, T5, T6, bool>> expression);
|
||||
//ISugarQueryable<T> Where<T2>(Expression<Func<T2, bool>> expression);
|
||||
//ISugarQueryable<T> Where<T2, T3>(Expression<Func<T2, T3, bool>> expression);
|
||||
//ISugarQueryable<T> Where<T2, T3, T4>(Expression<Func<T2, T3, T4, bool>> expression);
|
||||
//ISugarQueryable<T> Where<T2, T3, T4, T5>(Expression<Func<T2, T3, T4, T5, bool>> expression);
|
||||
//ISugarQueryable<T> Where<T2, T3, T4, T5, T6>(Expression<Func<T2, T3, T4, T5, T6, bool>> expression);
|
||||
|
||||
ISugarQueryable<T> Having(Expression<Func<T, bool>> expression);
|
||||
ISugarQueryable<T> Having(string whereString, object whereObj = null);
|
||||
ISugarQueryable<T> Having<T2>(Expression<Func<T2, bool>> expression);
|
||||
ISugarQueryable<T> Having<T2, T3>(Expression<Func<T2, T3, bool>> expression);
|
||||
ISugarQueryable<T> Having<T2, T3, T4>(Expression<Func<T2, T3, T4, bool>> expression);
|
||||
ISugarQueryable<T> Having<T2, T3, T4, T5>(Expression<Func<T2, T3, T4, T5, bool>> expression);
|
||||
ISugarQueryable<T> Having<T2, T3, T4, T5, T6>(Expression<Func<T2, T3, T4, T5, T6, bool>> expression);
|
||||
//ISugarQueryable<T> Having<T2>(Expression<Func<T2, bool>> expression);
|
||||
//ISugarQueryable<T> Having<T2, T3>(Expression<Func<T2, T3, bool>> expression);
|
||||
//ISugarQueryable<T> Having<T2, T3, T4>(Expression<Func<T2, T3, T4, bool>> expression);
|
||||
//ISugarQueryable<T> Having<T2, T3, T4, T5>(Expression<Func<T2, T3, T4, T5, bool>> expression);
|
||||
//ISugarQueryable<T> Having<T2, T3, T4, T5, T6>(Expression<Func<T2, T3, T4, T5, T6, bool>> expression);
|
||||
|
||||
ISugarQueryable<T> WhereIF(bool isWhere, Expression<Func<T, bool>> expression);
|
||||
ISugarQueryable<T> WhereIF(bool isWhere, string whereString, object whereObj = null);
|
||||
ISugarQueryable<T> WhereIF<T2>(bool isWhere, Expression<Func<T2, bool>> expression);
|
||||
ISugarQueryable<T> WhereIF<T2, T3>(bool isWhere, Expression<Func<T2, T3, bool>> expression);
|
||||
ISugarQueryable<T> WhereIF<T2, T3, T4>(bool isWhere, Expression<Func<T2, T3, T4, bool>> expression);
|
||||
ISugarQueryable<T> WhereIF<T2, T3, T4, T5>(bool isWhere, Expression<Func<T2, T3, T4, T5, bool>> expression);
|
||||
ISugarQueryable<T> WhereIF<T2, T3, T4, T5, T6>(bool isWhere, Expression<Func<T2, T3, T4, T5, T6, bool>> expression);
|
||||
//ISugarQueryable<T> WhereIF<T2>(bool isWhere, Expression<Func<T2, bool>> expression);
|
||||
//ISugarQueryable<T> WhereIF<T2, T3>(bool isWhere, Expression<Func<T2, T3, bool>> expression);
|
||||
//ISugarQueryable<T> WhereIF<T2, T3, T4>(bool isWhere, Expression<Func<T2, T3, T4, bool>> expression);
|
||||
//ISugarQueryable<T> WhereIF<T2, T3, T4, T5>(bool isWhere, Expression<Func<T2, T3, T4, T5, bool>> expression);
|
||||
//ISugarQueryable<T> WhereIF<T2, T3, T4, T5, T6>(bool isWhere, Expression<Func<T2, T3, T4, T5, T6, bool>> expression);
|
||||
ISugarQueryable<T> In(params object[] pkValues);
|
||||
|
||||
T InSingle(object pkValue);
|
||||
@ -50,10 +50,10 @@ namespace SqlSugar
|
||||
|
||||
ISugarQueryable<T> OrderBy(string orderFileds);
|
||||
ISugarQueryable<T> OrderBy(Expression<Func<T, object>> expression, OrderByType type = OrderByType.Asc);
|
||||
ISugarQueryable<T2> OrderBy<T2>(Expression<Func<T2, object>> expression, OrderByType type = OrderByType.Asc);
|
||||
//ISugarQueryable<T2> OrderBy<T2>(Expression<Func<T2, object>> expression, OrderByType type = OrderByType.Asc);
|
||||
|
||||
ISugarQueryable<T> GroupBy(Expression<Func<T, object>> expression);
|
||||
ISugarQueryable<T2> GroupBy<T2>(Expression<Func<T2, object>> expression);
|
||||
//ISugarQueryable<T2> GroupBy<T2>(Expression<Func<T2, object>> expression);
|
||||
ISugarQueryable<T> GroupBy(string groupFileds);
|
||||
|
||||
ISugarQueryable<T> Skip(int index);
|
||||
@ -67,12 +67,12 @@ namespace SqlSugar
|
||||
|
||||
bool Any(Expression<Func<T, bool>> expression);
|
||||
bool Any();
|
||||
ISugarQueryable<TResult> Select<T2, TResult>(Expression<Func<T2, TResult>> expression);
|
||||
ISugarQueryable<TResult> Select<T2, T3, TResult>(Expression<Func<T2, T3, TResult>> expression);
|
||||
ISugarQueryable<TResult> Select<T2, T3, T4, TResult>(Expression<Func<T2, T3, T4, TResult>> expression);
|
||||
ISugarQueryable<TResult> Select<T2, T3, T4, T5, TResult>(Expression<Func<T2, T3, T4, T5, TResult>> expression);
|
||||
ISugarQueryable<TResult> Select<T2, T3, T4, T5, T6, TResult>(Expression<Func<T2, T3, T4, T5, T6, TResult>> expression);
|
||||
ISugarQueryable<TResult> Select<T2, T3, T4, T5, T6, T7, TResult>(Expression<Func<T2, T3, T4, T5, T6, T7, TResult>> expression);
|
||||
//ISugarQueryable<TResult> Select<T2, TResult>(Expression<Func<T2, TResult>> expression);
|
||||
//ISugarQueryable<TResult> Select<T2, T3, TResult>(Expression<Func<T2, T3, TResult>> expression);
|
||||
//ISugarQueryable<TResult> Select<T2, T3, T4, TResult>(Expression<Func<T2, T3, T4, TResult>> expression);
|
||||
//ISugarQueryable<TResult> Select<T2, T3, T4, T5, TResult>(Expression<Func<T2, T3, T4, T5, TResult>> expression);
|
||||
//ISugarQueryable<TResult> Select<T2, T3, T4, T5, T6, TResult>(Expression<Func<T2, T3, T4, T5, T6, TResult>> expression);
|
||||
//ISugarQueryable<TResult> Select<T2, T3, T4, T5, T6, T7, TResult>(Expression<Func<T2, T3, T4, T5, T6, T7, TResult>> expression);
|
||||
ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, TResult>> expression);
|
||||
ISugarQueryable<TResult> Select<TResult>(string select) where TResult : class, new();
|
||||
ISugarQueryable<T> Select(string select);
|
||||
@ -109,7 +109,13 @@ namespace SqlSugar
|
||||
}
|
||||
public partial interface ISugarQueryable<T, T2> : ISugarQueryable<T>
|
||||
{
|
||||
|
||||
new ISugarQueryable<T,T2> Where(Expression<Func<T, bool>> expression);
|
||||
ISugarQueryable<T,T2> Where(Expression<Func<T,T2, bool>> expression);
|
||||
ISugarQueryable<TResult> Select<TResult>(Expression<Func<T,T2, TResult>> expression);
|
||||
new ISugarQueryable<T,T2> OrderBy(Expression<Func<T, object>> expression, OrderByType type = OrderByType.Asc);
|
||||
ISugarQueryable<T,T2> OrderBy(Expression<Func<T,T2, object>> expression, OrderByType type = OrderByType.Asc);
|
||||
new ISugarQueryable<T,T2> GroupBy(Expression<Func<T, object>> expression);
|
||||
ISugarQueryable<T, T2> GroupBy(Expression<Func<T,T2, object>> expression);
|
||||
}
|
||||
public partial interface ISugarQueryable<T, T2, T3> : ISugarQueryable<T>
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user