This commit is contained in:
sunkaixuan 2017-09-17 01:30:31 +08:00
parent e9f883fa1b
commit 40340b8f32
7 changed files with 52 additions and 6 deletions

View File

@ -36,6 +36,8 @@ namespace OrmTest.Demo
var getAll7 = db.Queryable<Student>().Where(it => SqlFunc.Subqueryable<School>().Where(s => s.Id == it.Id).Any()).ToList(); var getAll7 = db.Queryable<Student>().Where(it => SqlFunc.Subqueryable<School>().Where(s => s.Id == it.Id).Any()).ToList();
var getAll9 = db.Queryable<Student>().Where(it => SqlFunc.Subqueryable<School>().Where(s => s.Id == it.Id).Count()==1).ToList();
var getAll8= db.Queryable<Student>().Where(it => SqlFunc.Subqueryable<School>().Where(s => s.Id == it.Id).Where(s=>s.Name==it.Name).NotAny()).ToList(); var getAll8= db.Queryable<Student>().Where(it => SqlFunc.Subqueryable<School>().Where(s => s.Id == it.Id).Where(s=>s.Name==it.Name).NotAny()).ToList();
var getAll1 = db.Queryable<Student>().Where(it => it.Id == SqlFunc.Subqueryable<School>().Where(s => s.Id == it.Id).Select(s => s.Id)).ToList(); var getAll1 = db.Queryable<Student>().Where(it => it.Id == SqlFunc.Subqueryable<School>().Where(s => s.Id == it.Id).Select(s => s.Id)).ToList();

View File

@ -13,6 +13,5 @@ namespace SqlSugar
string GetValue(Expression expression); string GetValue(Expression expression);
int Sort { get; } int Sort { get; }
Expression Expression { get; set; } Expression Expression { get; set; }
} }
} }

View File

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
namespace SqlSugar
{
public class SubCount: ISubOperation
{
public string Name
{
get
{
return "Count";
}
}
public Expression Expression
{
get; set;
}
public int Sort
{
get
{
return 200;
}
}
public ExpressionContext Context
{
get; set;
}
public string GetValue(Expression expression)
{
return "COUNT(*)";
}
}
}

View File

@ -22,7 +22,7 @@ namespace SqlSugar
this.context = context; this.context = context;
var currentExpression = expression; var currentExpression = expression;
allMethods.Add(currentExpression); allMethods.Add(currentExpression);
if (context.IsSingle && oppsiteExpression != null) if (context.IsSingle && oppsiteExpression != null&& oppsiteExpression is MemberExpression)
{ {
var childExpression = (oppsiteExpression as MemberExpression).Expression; var childExpression = (oppsiteExpression as MemberExpression).Expression;
this.context.SingleTableNameSubqueryShortName = (childExpression as ParameterExpression).Name; this.context.SingleTableNameSubqueryShortName = (childExpression as ParameterExpression).Name;

View File

@ -19,7 +19,8 @@ namespace SqlSugar
new SubAny(){ Context=Context }, new SubAny(){ Context=Context },
new SubNotAny(){ Context=Context }, new SubNotAny(){ Context=Context },
new SubBegin(){ Context=Context }, new SubBegin(){ Context=Context },
new SubFromTable(){ Context=Context } new SubFromTable(){ Context=Context },
new SubCount(){ Context=Context }
}; };
} }

View File

@ -36,9 +36,9 @@ namespace SqlSugar
return default(bool); return default(bool);
} }
public bool Count() public int Count()
{ {
return default(bool); return default(int);
} }
} }
} }

View File

@ -72,8 +72,9 @@
<Compile Include="Abstract\InsertableProvider\InsertableProvider.cs" /> <Compile Include="Abstract\InsertableProvider\InsertableProvider.cs" />
<Compile Include="Abstract\DeleteProvider\DeleteableProvider.cs" /> <Compile Include="Abstract\DeleteProvider\DeleteableProvider.cs" />
<Compile Include="Enum\DbType.cs" /> <Compile Include="Enum\DbType.cs" />
<Compile Include="ExpressionsToSql\Subquery\Items\ISubAction.cs" /> <Compile Include="ExpressionsToSql\Subquery\Items\ISubOperation.cs" />
<Compile Include="ExpressionsToSql\Subquery\Items\SubAnd.cs" /> <Compile Include="ExpressionsToSql\Subquery\Items\SubAnd.cs" />
<Compile Include="ExpressionsToSql\Subquery\Items\SubCount.cs" />
<Compile Include="ExpressionsToSql\Subquery\Items\SubLeftBracket.cs" /> <Compile Include="ExpressionsToSql\Subquery\Items\SubLeftBracket.cs" />
<Compile Include="ExpressionsToSql\Subquery\Items\SubFromTable.cs" /> <Compile Include="ExpressionsToSql\Subquery\Items\SubFromTable.cs" />
<Compile Include="ExpressionsToSql\Subquery\Items\SubAny.cs" /> <Compile Include="ExpressionsToSql\Subquery\Items\SubAny.cs" />