Skip to content

Commit 8d266a5

Browse files
2881028810
authored andcommitted
修复 IsIgnore 过滤字段后,查询的错误;
1 parent b33536e commit 8d266a5

File tree

11 files changed

+60
-4
lines changed

11 files changed

+60
-4
lines changed

FreeSql.Tests/DataAnnotations/MySqlFluentTest.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using FreeSql.DataAnnotations;
22
using FreeSql.Tests.DataContext.SqlServer;
3+
using System;
34
using Xunit;
45

56
namespace FreeSql.Tests.DataAnnotations {
@@ -56,5 +57,22 @@ class TestFluenttb2
5657

5758
public string name { get; set; } = "defaultValue";
5859
}
60+
61+
[Fact]
62+
public void IsIgnore() {
63+
var item = new TestIsIgnore { };
64+
Assert.Equal(1, g.mysql.Insert<TestIsIgnore>().AppendData(item).ExecuteAffrows());
65+
66+
var find = g.mysql.Select<TestIsIgnore>().Where(a => a.id == item.id).First();
67+
Assert.NotNull(find);
68+
Assert.Equal(item.id, find.id);
69+
}
70+
71+
class TestIsIgnore {
72+
public Guid id { get; set; }
73+
74+
[Column(IsIgnore = true)]
75+
public bool isignore { get; set; }
76+
}
5977
}
6078
}

FreeSql.Tests/DataAnnotations/SqlServerFluentTest.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using FreeSql.DataAnnotations;
22
using FreeSql.Tests.DataContext.SqlServer;
3+
using System;
34
using Xunit;
45

56
namespace FreeSql.Tests.DataAnnotations {
@@ -81,6 +82,23 @@ class TestgroupkeyTb {
8182

8283
public string name { get; set; } = "defaultValue";
8384
}
85+
86+
[Fact]
87+
public void IsIgnore() {
88+
var item = new TestIsIgnore { };
89+
Assert.Equal(1, _sqlserverFixture.SqlServer.Insert<TestIsIgnore>().AppendData(item).ExecuteAffrows());
90+
91+
var find = _sqlserverFixture.SqlServer.Select<TestIsIgnore>().Where(a => a.id == item.id).First();
92+
Assert.NotNull(find);
93+
Assert.Equal(item.id, find.id);
94+
}
95+
96+
class TestIsIgnore {
97+
public Guid id { get; set; }
98+
99+
[Column(IsIgnore = true)]
100+
public bool isignore { get; set; }
101+
}
84102
}
85103

86104
}

FreeSql.Tests/MySql/Curd/MySqlSelectTest.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,8 @@ class TestGuidIdToList {
246246
}
247247
[Fact]
248248
public void ToOne() {
249+
var testnotfind = select.Where("1=2").First(a => a.CreateTime);
250+
Assert.Equal(default(DateTime), testnotfind);
249251
}
250252
[Fact]
251253
public void ToSql() {

FreeSql.Tests/Oracle/Curd/OracleSelectTest.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,8 @@ class TestGuidIdToList {
156156
}
157157
[Fact]
158158
public void ToOne() {
159+
var testnotfind = select.Where("1=2").First(a => a.CreateTime);
160+
Assert.Equal(default(DateTime), testnotfind);
159161
}
160162
[Fact]
161163
public void ToSql() {

FreeSql.Tests/PostgreSQL/Curd/PostgreSQLSelectTest.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,8 @@ class TestGuidIdToList {
226226
}
227227
[Fact]
228228
public void ToOne() {
229+
var testnotfind = select.Where("1=2").First(a => a.CreateTime);
230+
Assert.Equal(default(DateTime), testnotfind);
229231
}
230232
[Fact]
231233
public void ToSql() {

FreeSql.Tests/SqlServer/Curd/SqlServerSelectTest.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,8 @@ class TestGuidIdToList {
158158
}
159159
[Fact]
160160
public void ToOne() {
161+
var testnotfind = select.Where("1=2").First(a => a.CreateTime);
162+
Assert.Equal(default(DateTime), testnotfind);
161163
}
162164
[Fact]
163165
public void ToSql() {

FreeSql.Tests/Sqlite/Curd/SqliteSelectTest.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,8 @@ class TestGuidIdToList {
167167
}
168168
[Fact]
169169
public void ToOne() {
170+
var testnotfind = select.Where("1=2").First(a => a.CreateTime);
171+
Assert.Equal(default(DateTime), testnotfind);
170172
}
171173
[Fact]
172174
public void ToSql() {

FreeSql/FreeSql.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<TargetFramework>netstandard2.0</TargetFramework>
5-
<Version>0.5.1.1</Version>
5+
<Version>0.5.1.2</Version>
66
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
77
<Authors>YeXiangQin</Authors>
88
<Description>FreeSql is the most convenient ORM in dotnet. It supports Mysql, Postgresql, SqlServer, Oracle and Sqlite.</Description>

FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,8 @@ protected GetAllFieldExpressionTreeInfo GetAllFieldExpressionTree() {
377377
var index = 0;
378378
var otherindex = 0;
379379
foreach (var prop in props.Values) {
380+
if (tb.Table.ColumnsByCsIgnore.ContainsKey(prop.Name)) continue;
381+
380382
if (tb.Table.ColumnsByCs.TryGetValue(prop.Name, out var col)) { //普通字段
381383
if (index > 0) field.Append(", ");
382384
var quoteName = _commonUtils.QuoteSqlName(col.Attribute.Name);

FreeSql/Internal/Model/TableInfo.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ public class TableInfo {
1111
public Dictionary<string, PropertyInfo> Properties { get; set; } = new Dictionary<string, PropertyInfo>(StringComparer.CurrentCultureIgnoreCase);
1212
public Dictionary<string, ColumnInfo> Columns { get; set; } = new Dictionary<string, ColumnInfo>(StringComparer.CurrentCultureIgnoreCase);
1313
public Dictionary<string, ColumnInfo> ColumnsByCs { get; set; } = new Dictionary<string, ColumnInfo>(StringComparer.CurrentCultureIgnoreCase);
14+
public Dictionary<string, ColumnInfo> ColumnsByCsIgnore { get; set; } = new Dictionary<string, ColumnInfo>(StringComparer.CurrentCultureIgnoreCase);
1415
public ColumnInfo[] Primarys { get; set; }
1516
public string CsName { get; set; }
1617
public string DbName { get; set; }

0 commit comments

Comments
 (0)