From 64e59cda87492078eea70fa40eb3de263235a4f3 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Mon, 4 Sep 2017 11:27:11 +0800 Subject: [PATCH] Single BUG --- Src/Asp.Net/SqlServerTest/Demos/1_Query.cs | 4 ++-- .../Abstract/QueryableProvider/QueryableProvider.cs | 12 ++++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs index 6a8a3bc5b..6da075919 100644 --- a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs +++ b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs @@ -170,7 +170,7 @@ namespace OrmTest.Demo var getNew = db.Queryable().Where(it => it.Id == 1).Select(it => new { id = SqlFunc.IIF(it.Id == 0, 1, it.Id), it.Name, it.SchoolId }).ToList(); var getAllNoLock = db.Queryable().With(SqlWith.NoLock).ToList(); var getByPrimaryKey = db.Queryable().InSingle(2); - var getSingleOrDefault = db.Queryable().Single(); + var getSingleOrDefault = db.Queryable().Where(it=>it.Id==1).Single(); var getFirstOrDefault = db.Queryable().First(); var getByWhere = db.Queryable().Where(it => it.Id == 1 || it.Name == "a").ToList(); var getByFuns = db.Queryable().Where(it => SqlFunc.IsNullOrEmpty(it.Name)).ToList(); @@ -380,7 +380,7 @@ namespace OrmTest.Demo { var db = GetInstance(); db.IgnoreColumns.Add("TestId", "Student"); - var s1 = db.Queryable().Select(it => new ViewModelStudent2 { Name = it.Name, Student = it }).ToList(); + var s1 = db.Queryable().Where(it=>it.Id== 136915).Single(); var s2 = db.Queryable().Select(it => new { id = it.Id, w = new { x = it } }).ToList(); var s3 = db.Queryable().Select(it => new { newid = it.Id }).ToList(); var s4 = db.Queryable().Select(it => new { newid = it.Id, obj = it }).ToList(); diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index dd6ed862d..3b636876d 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -333,15 +333,19 @@ namespace SqlSugar QueryBuilder.OrderByValue = QueryBuilder.DefaultOrderByTemplate; } QueryBuilder.Skip = 0; - QueryBuilder.Take = 1; + QueryBuilder.Take = 2; var reval = this.ToList(); - if (reval.IsValuable()) + if (reval == null || reval.Count == 0) { - return reval.SingleOrDefault(); + return default(T); + } + else if (reval.Count == 2) { + Check.Exception(true, ".Single() result must not exceed one . You can use.First()"); + return default(T); } else { - return default(T); + return reval.SingleOrDefault(); } } public virtual T Single(Expression> expression)