Skip to content

Commit f6d271f

Browse files
Replaced all occurences of property.Name to finish implementation of Attribute
1 parent 21582dd commit f6d271f

3 files changed

Lines changed: 71 additions & 32 deletions

File tree

Dapper.sln

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
1616
version.json = version.json
1717
EndProjectSection
1818
EndProject
19-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dapper.Contrib", "Dapper.Contrib\Dapper.Contrib.csproj", "{4E409F8F-CFBB-4332-8B0A-FD5A283051FD}"
20-
EndProject
2119
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dapper.Tests.Contrib", "tests\Dapper.Tests.Contrib\Dapper.Tests.Contrib.csproj", "{DAB3C5B7-BCD1-4A5F-BB6B-50D2BB63DB4A}"
2220
EndProject
2321
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{4E956F6B-6BD8-46F5-BC85-49292FF8F9AB}"
@@ -32,27 +30,29 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{568BD46C
3230
tests\docker-compose.yml = tests\docker-compose.yml
3331
EndProjectSection
3432
EndProject
33+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapper.Contrib", "src\Dapper.Contrib\Dapper.Contrib.csproj", "{F36D3111-38BC-488F-BE7F-533B5DC8070A}"
34+
EndProject
3535
Global
3636
GlobalSection(SolutionConfigurationPlatforms) = preSolution
3737
Debug|Any CPU = Debug|Any CPU
3838
Release|Any CPU = Release|Any CPU
3939
EndGlobalSection
4040
GlobalSection(ProjectConfigurationPlatforms) = postSolution
41-
{4E409F8F-CFBB-4332-8B0A-FD5A283051FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
42-
{4E409F8F-CFBB-4332-8B0A-FD5A283051FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
43-
{4E409F8F-CFBB-4332-8B0A-FD5A283051FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
44-
{4E409F8F-CFBB-4332-8B0A-FD5A283051FD}.Release|Any CPU.Build.0 = Release|Any CPU
4541
{DAB3C5B7-BCD1-4A5F-BB6B-50D2BB63DB4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
4642
{DAB3C5B7-BCD1-4A5F-BB6B-50D2BB63DB4A}.Debug|Any CPU.Build.0 = Debug|Any CPU
4743
{DAB3C5B7-BCD1-4A5F-BB6B-50D2BB63DB4A}.Release|Any CPU.ActiveCfg = Release|Any CPU
4844
{DAB3C5B7-BCD1-4A5F-BB6B-50D2BB63DB4A}.Release|Any CPU.Build.0 = Release|Any CPU
45+
{F36D3111-38BC-488F-BE7F-533B5DC8070A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
46+
{F36D3111-38BC-488F-BE7F-533B5DC8070A}.Debug|Any CPU.Build.0 = Debug|Any CPU
47+
{F36D3111-38BC-488F-BE7F-533B5DC8070A}.Release|Any CPU.ActiveCfg = Release|Any CPU
48+
{F36D3111-38BC-488F-BE7F-533B5DC8070A}.Release|Any CPU.Build.0 = Release|Any CPU
4949
EndGlobalSection
5050
GlobalSection(SolutionProperties) = preSolution
5151
HideSolutionNode = FALSE
5252
EndGlobalSection
5353
GlobalSection(NestedProjects) = preSolution
54-
{4E409F8F-CFBB-4332-8B0A-FD5A283051FD} = {4E956F6B-6BD8-46F5-BC85-49292FF8F9AB}
5554
{DAB3C5B7-BCD1-4A5F-BB6B-50D2BB63DB4A} = {568BD46C-1C65-4D44-870C-12CD72563262}
55+
{F36D3111-38BC-488F-BE7F-533B5DC8070A} = {4E956F6B-6BD8-46F5-BC85-49292FF8F9AB}
5656
EndGlobalSection
5757
GlobalSection(ExtensibilityGlobals) = postSolution
5858
SolutionGuid = {928A4226-96F3-409A-8A83-9E7444488710}

src/Dapper.Contrib/SqlMapperExtensions.Async.cs

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using System.Text;
77
using System.Threading.Tasks;
88
using Dapper;
9+
using Dapper.Contrib.Extensions;
910

1011
namespace Dapper.Contrib.Extensions
1112
{
@@ -49,7 +50,9 @@ public static async Task<T> GetAsync<T>(this IDbConnection connection, dynamic i
4950

5051
foreach (var property in TypePropertiesCache(type))
5152
{
52-
var val = res[property.Name];
53+
var columnAttribute = property.GetCustomAttribute<ColumnAttribute>();
54+
55+
var val = res[columnAttribute == null ? property.Name : columnAttribute.Name];
5356
if (val == null) continue;
5457
if (property.PropertyType.IsGenericType && property.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>))
5558
{
@@ -107,8 +110,10 @@ private static async Task<IEnumerable<T>> GetAllAsyncImpl<T>(IDbConnection conne
107110
{
108111
var obj = ProxyGenerator.GetInterfaceProxy<T>();
109112
foreach (var property in TypePropertiesCache(type))
110-
{
111-
var val = res[property.Name];
113+
{
114+
var columnAttribute = property.GetCustomAttribute<ColumnAttribute>();
115+
116+
var val = res[columnAttribute == null ? property.Name : columnAttribute.Name];
112117
if (val == null) continue;
113118
if (property.PropertyType.IsGenericType && property.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>))
114119
{
@@ -172,7 +177,10 @@ public static Task<int> InsertAsync<T>(this IDbConnection connection, T entityTo
172177
for (var i = 0; i < allPropertiesExceptKeyAndComputed.Count; i++)
173178
{
174179
var property = allPropertiesExceptKeyAndComputed[i];
175-
sqlAdapter.AppendColumnName(sbColumnList, property.Name);
180+
181+
var columnAttribute = property.GetCustomAttribute<ColumnAttribute>();
182+
183+
sqlAdapter.AppendColumnName(sbColumnList, columnAttribute == null ? property.Name : columnAttribute.Name);
176184
if (i < allPropertiesExceptKeyAndComputed.Count - 1)
177185
sbColumnList.Append(", ");
178186
}
@@ -181,7 +189,10 @@ public static Task<int> InsertAsync<T>(this IDbConnection connection, T entityTo
181189
for (var i = 0; i < allPropertiesExceptKeyAndComputed.Count; i++)
182190
{
183191
var property = allPropertiesExceptKeyAndComputed[i];
184-
sbParameterList.AppendFormat("@{0}", property.Name);
192+
193+
var columnAttribute = property.GetCustomAttribute<ColumnAttribute>();
194+
195+
sbParameterList.AppendFormat("@{0}", columnAttribute == null ? property.Name : columnAttribute.Name);
185196
if (i < allPropertiesExceptKeyAndComputed.Count - 1)
186197
sbParameterList.Append(", ");
187198
}
@@ -252,15 +263,21 @@ public static async Task<bool> UpdateAsync<T>(this IDbConnection connection, T e
252263
for (var i = 0; i < nonIdProps.Count; i++)
253264
{
254265
var property = nonIdProps[i];
255-
adapter.AppendColumnNameEqualsValue(sb, property.Name);
266+
267+
var columnAttribute = property.GetCustomAttribute<ColumnAttribute>();
268+
269+
adapter.AppendColumnNameEqualsValue(sb, columnAttribute == null ? property.Name : columnAttribute.Name);
256270
if (i < nonIdProps.Count - 1)
257271
sb.Append(", ");
258272
}
259273
sb.Append(" where ");
260274
for (var i = 0; i < keyProperties.Count; i++)
261275
{
262276
var property = keyProperties[i];
263-
adapter.AppendColumnNameEqualsValue(sb, property.Name);
277+
278+
var columnAttribute = property.GetCustomAttribute<ColumnAttribute>();
279+
280+
adapter.AppendColumnNameEqualsValue(sb, columnAttribute == null ? property.Name : columnAttribute.Name);
264281
if (i < keyProperties.Count - 1)
265282
sb.Append(" and ");
266283
}
@@ -317,7 +334,10 @@ public static async Task<bool> DeleteAsync<T>(this IDbConnection connection, T e
317334
for (var i = 0; i < allKeyProperties.Count; i++)
318335
{
319336
var property = allKeyProperties[i];
320-
adapter.AppendColumnNameEqualsValue(sb, property.Name);
337+
338+
var columnAttribute = property.GetCustomAttribute<ColumnAttribute>();
339+
340+
adapter.AppendColumnNameEqualsValue(sb, columnAttribute == null ? property.Name : columnAttribute.Name);
321341
if (i < allKeyProperties.Count - 1)
322342
sb.Append(" AND ");
323343
}
@@ -493,7 +513,10 @@ public async Task<int> InsertAsync(IDbConnection connection, IDbTransaction tran
493513
if (!first)
494514
sb.Append(", ");
495515
first = false;
496-
sb.Append(property.Name);
516+
517+
var columnAttribute = property.GetCustomAttribute<ColumnAttribute>();
518+
519+
sb.Append(columnAttribute == null ? property.Name : columnAttribute.Name);
497520
}
498521
}
499522

src/Dapper.Contrib/SqlMapperExtensions.cs

Lines changed: 32 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using System.Threading;
1010

1111
using Dapper;
12+
using Dapper.Contrib.Extensions;
1213

1314
namespace Dapper.Contrib.Extensions
1415
{
@@ -196,7 +197,10 @@ public static T Get<T>(this IDbConnection connection, dynamic id, IDbTransaction
196197

197198
foreach (var property in TypePropertiesCache(type))
198199
{
199-
var val = res[property.Name];
200+
201+
var columnAttribute = property.GetCustomAttribute<ColumnAttribute>();
202+
203+
var val = res[columnAttribute == null ? property.Name : columnAttribute.Name];
200204
if (val == null) continue;
201205
if (property.PropertyType.IsGenericType && property.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>))
202206
{
@@ -252,7 +256,9 @@ public static IEnumerable<T> GetAll<T>(this IDbConnection connection, IDbTransac
252256
var obj = ProxyGenerator.GetInterfaceProxy<T>();
253257
foreach (var property in TypePropertiesCache(type))
254258
{
255-
var val = res[property.Name];
259+
var columnAttribute = property.GetCustomAttribute<ColumnAttribute>();
260+
261+
var val = res[columnAttribute == null ? property.Name : columnAttribute.Name];
256262
if (val == null) continue;
257263
if (property.PropertyType.IsGenericType && property.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>))
258264
{
@@ -357,14 +363,7 @@ public static long Insert<T>(this IDbConnection connection, T entityToInsert, ID
357363

358364
var columnAttribute = property.GetCustomAttribute<ColumnAttribute>();
359365

360-
if (columnAttribute == null)
361-
{
362-
adapter.AppendColumnName(sbColumnList, property.Name); //fix for issue #336
363-
}
364-
else
365-
{
366-
adapter.AppendColumnName(sbColumnList, columnAttribute.Name);
367-
}
366+
adapter.AppendColumnName(sbColumnList, columnAttribute == null ? property.Name : columnAttribute.Name);
368367

369368
if (i < allPropertiesExceptKeyAndComputed.Count - 1)
370369
sbColumnList.Append(", ");
@@ -374,7 +373,10 @@ public static long Insert<T>(this IDbConnection connection, T entityToInsert, ID
374373
for (var i = 0; i < allPropertiesExceptKeyAndComputed.Count; i++)
375374
{
376375
var property = allPropertiesExceptKeyAndComputed[i];
377-
sbParameterList.AppendFormat("@{0}", property.Name);
376+
377+
var columnAttribute = property.GetCustomAttribute<ColumnAttribute>();
378+
379+
sbParameterList.AppendFormat("@{0}", columnAttribute == null ? property.Name : columnAttribute.Name);
378380
if (i < allPropertiesExceptKeyAndComputed.Count - 1)
379381
sbParameterList.Append(", ");
380382
}
@@ -453,15 +455,20 @@ public static bool Update<T>(this IDbConnection connection, T entityToUpdate, ID
453455
for (var i = 0; i < nonIdProps.Count; i++)
454456
{
455457
var property = nonIdProps[i];
456-
adapter.AppendColumnNameEqualsValue(sb, property.Name); //fix for issue #336
458+
var columnAttribute = property.GetCustomAttribute<ColumnAttribute>();
459+
460+
adapter.AppendColumnNameEqualsValue(sb, columnAttribute == null ? property.Name : columnAttribute.Name);
457461
if (i < nonIdProps.Count - 1)
458462
sb.Append(", ");
459463
}
460464
sb.Append(" where ");
461465
for (var i = 0; i < keyProperties.Count; i++)
462466
{
463467
var property = keyProperties[i];
464-
adapter.AppendColumnNameEqualsValue(sb, property.Name); //fix for issue #336
468+
469+
var columnAttribute = property.GetCustomAttribute<ColumnAttribute>();
470+
471+
adapter.AppendColumnNameEqualsValue(sb, columnAttribute == null ? property.Name : columnAttribute.Name); //fix for issue #336
465472
if (i < keyProperties.Count - 1)
466473
sb.Append(" and ");
467474
}
@@ -518,7 +525,10 @@ public static bool Delete<T>(this IDbConnection connection, T entityToDelete, ID
518525
for (var i = 0; i < keyProperties.Count; i++)
519526
{
520527
var property = keyProperties[i];
521-
adapter.AppendColumnNameEqualsValue(sb, property.Name); //fix for issue #336
528+
529+
var columnAttribute = property.GetCustomAttribute<ColumnAttribute>();
530+
531+
adapter.AppendColumnNameEqualsValue(sb, columnAttribute == null ? property.Name : columnAttribute.Name); //fix for issue #336
522532
if (i < keyProperties.Count - 1)
523533
sb.Append(" and ");
524534
}
@@ -599,7 +609,10 @@ public static T GetInterfaceProxy<T>()
599609
foreach (var property in typeof(T).GetProperties())
600610
{
601611
var isId = property.GetCustomAttributes(true).Any(a => a is KeyAttribute);
602-
CreateProperty<T>(typeBuilder, property.Name, property.PropertyType, setIsDirtyMethod, isId);
612+
613+
var columnAttribute = property.GetCustomAttribute<ColumnAttribute>();
614+
615+
CreateProperty<T>(typeBuilder, columnAttribute == null ? property.Name : columnAttribute.Name, property.PropertyType, setIsDirtyMethod, isId);
603616
}
604617

605618
#if NETSTANDARD2_0
@@ -1037,7 +1050,10 @@ public int Insert(IDbConnection connection, IDbTransaction transaction, int? com
10371050
if (!first)
10381051
sb.Append(", ");
10391052
first = false;
1040-
sb.Append(property.Name);
1053+
1054+
var columnAttribute = property.GetCustomAttribute<ColumnAttribute>();
1055+
1056+
sb.Append(columnAttribute == null ? property.Name : columnAttribute.Name);
10411057
}
10421058
}
10431059

0 commit comments

Comments
 (0)