diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/UQueryable.cs b/Src/Asp.Net/SqlServerTest/UnitTest/UQueryable.cs index f8c122219..192156520 100644 --- a/Src/Asp.Net/SqlServerTest/UnitTest/UQueryable.cs +++ b/Src/Asp.Net/SqlServerTest/UnitTest/UQueryable.cs @@ -95,9 +95,117 @@ namespace OrmTest a = it.a.Value }).ToSql(); UValidate.Check(x.Key, "SELECT [a] AS [a] FROM [BoolTest2] ", "Queryable"); + + var db = Db; + db.CodeFirst.InitTables(); + db.Deleteable().ExecuteCommand(); + db.Deleteable().ExecuteCommand(); + db.Insertable(new UserInfo() + { + Id = 1, + Password = "123", + UserName = "admin" + }).ExecuteCommand(); + db.Insertable(new UserIpRuleInfo() + { + Addtime = DateTime.Now, + UserName = "a", + Id = 11, + UserId = 1, + Description = "xx", + IpRange = "1", + RuleType = 1 + }).ExecuteCommand(); + var vmList = db.Queryable( + (m1, m2) => m1.Id == m2.UserId + ).Where((m1, m2) => m1.Id > 0).Select((m1, m2) => new UserIpRuleInfo() + { + + IpRange = m2.IpRange, + Addtime = m2.Addtime, + RuleType = m2.RuleType, + }).ToList(); + if (string.IsNullOrEmpty (vmList.First().IpRange) ) + { + throw new Exception("Queryable"); + } } + /// + /// + /// + [Serializable] + [SugarTable("users")] + public class UserInfo + { + /// + /// + /// + public int Id { get; set; } + /// + /// + /// + + public string UserName { get; set; } + + /// + /// + /// + public string Password { get; set; } + + } + /// + /// + /// + [Serializable] + [SugarTable("user_ip_rules")] + public class UserIpRuleInfo + { + /// + /// 自增Id + /// + public int Id { get; set; } + + + /// + /// 用户Id + /// + [SugarColumn(ColumnName = "user_id")] + public int UserId { get; set; } + + /// + /// 用户名 + /// + [SugarColumn(IsIgnore = true)] + public string UserName { get; set; } + + /// + /// IP地址或范围 + /// + [SugarColumn(ColumnName = "ip_range")] + public string IpRange { get; set; } + + + /// + /// 规则类型 0-黑名单 1-白名单 + /// + [SugarColumn(ColumnName = "rule_type")] + public int RuleType { get; set; } + + + /// + /// 描述/备注 + /// + public string Description { get; set; } + + + /// + /// 添加时间 + /// + public DateTime Addtime { get; set; } + + } /// /// 系统用户表实体模型类 /// diff --git a/Src/Asp.Net/SqlSugar/Abstract/DbBindProvider/IDataReaderEntityBuilder.cs b/Src/Asp.Net/SqlSugar/Abstract/DbBindProvider/IDataReaderEntityBuilder.cs index 0d2b36e9c..ddcbaed73 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/DbBindProvider/IDataReaderEntityBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/DbBindProvider/IDataReaderEntityBuilder.cs @@ -124,6 +124,10 @@ namespace SqlSugar { BindField(generator, result, columnInfo, ReaderKeys.First(it => it.Equals(fileName, StringComparison.CurrentCultureIgnoreCase))); } + else if (this.ReaderKeys.Any(it => it.Equals(columnInfo.PropertyName, StringComparison.CurrentCultureIgnoreCase))) + { + BindField(generator, result, columnInfo, ReaderKeys.First(it => it.Equals(columnInfo.PropertyName, StringComparison.CurrentCultureIgnoreCase))); + } } } }