Update exp to sql

This commit is contained in:
sunkaixuan 2019-06-01 12:20:22 +08:00
parent ca1801038c
commit 92a6e26dac
3 changed files with 48 additions and 18 deletions

View File

@ -11,14 +11,14 @@ namespace OrmTest
//OldTestMain.Init();
//Demo
Demo0_SqlSugarClient.Init();
Demo1_Queryable.Init();
Demo2_Updateable.Init();
Democ_GobalFilter.Init();
DemoD_DbFirst.Init();
DemoE_CodeFirst.Init();
Demo5_SqlQueryable.Init();
Demo6_Queue.Init();
//Demo0_SqlSugarClient.Init();
//Demo1_Queryable.Init();
//Demo2_Updateable.Init();
//Democ_GobalFilter.Init();
//DemoD_DbFirst.Init();
//DemoE_CodeFirst.Init();
//Demo5_SqlQueryable.Init();
//Demo6_Queue.Init();
//Unit test
NewUnitTest.Init();

View File

@ -8,7 +8,8 @@ namespace OrmTest
{
public partial class NewUnitTest
{
public static void Queryable() {
public static void Queryable()
{
var pageindex = 1;
var pagesize = 10;
@ -49,8 +50,29 @@ namespace OrmTest
UValidate.Check(sql, "SELECT [Price],[CreateTime],[CustomId] FROM [Order] ", "Queryable");
sql = Db.Queryable<Order>().IgnoreColumns("id").ToSql().Key;
UValidate.Check(sql, "SELECT [Name],[Price],[CreateTime],[CustomId] FROM [Order] ", "Queryable");
var cts = IEnumerbleContains.Data();
var list2=Db.Queryable<Order>()
.Where(p => /*ids.*/cts.Select(c => c.Id).Contains(p.Id)).ToList();
var cts2 = IEnumerbleContains.Data().ToList(); ;
var list3 = Db.Queryable<Order>()
.Where(p => /*ids.*/cts2.Select(c => c.Id).Contains(p.Id)).ToList();
}
public static class IEnumerbleContains
{
public static IEnumerable<Order> Data()
{
for (int i = 0; i < 100; i++)
{
yield return new Order
{
Id = i,
};
}
}
}
public class UnitSelectTest2

View File

@ -515,6 +515,14 @@ namespace SqlSugar
case "Contains":
return this.Context.DbMehtods.Contains(model);
case "ContainsArray":
if (model.Args[0].MemberValue == null)
{
var first = this.Context.Parameters.FirstOrDefault(it => it.ParameterName == model.Args[0].MemberName.ObjToString());
if (first.HasValue())
{
model.Args[0].MemberValue = first.Value;
}
}
var caResult = this.Context.DbMehtods.ContainsArray(model);
this.Context.Parameters.RemoveAll(it => it.ParameterName == model.Args[0].MemberName.ObjToString());
return caResult;