diff --git a/src/Parakeet.Tests/ParakeetTests.cs b/src/Parakeet.Tests/ParakeetTests.cs
index 9f23c50..e9059cd 100644
--- a/src/Parakeet.Tests/ParakeetTests.cs
+++ b/src/Parakeet.Tests/ParakeetTests.cs
@@ -61,12 +61,27 @@ public void default_attribute_values()
var attr = new ParakeetAttribute("MyName");
attr.Name.ShouldBe("MyName");
+ attr.TableName.ShouldBeNull();
attr.Direction.ShouldBe(ParameterDirection.Input);
attr.DbType.ShouldBeNull();
attr.Size.ShouldBeNull();
attr.Precision.ShouldBeNull();
attr.Scale.ShouldBeNull();
}
+
+ [Fact]
+ public void optional_named_parameters()
+ {
+ var attr = new ParakeetAttribute(propertyName: "MyName", tableName: "dbo.MyTable", dbType: DbType.Binary);
+
+ attr.Name.ShouldBe("MyName");
+ attr.TableName.ShouldBe("dbo.MyTable");
+ attr.Direction.ShouldBe(ParameterDirection.Input);
+ attr.DbType.ShouldBe(DbType.Binary);
+ attr.Size.ShouldBeNull();
+ attr.Precision.ShouldBeNull();
+ attr.Scale.ShouldBeNull();
+ }
}
public class TestClass
@@ -122,7 +137,7 @@ public class TestClass
[ParakeetIgnore]
public string Ignored { get; set; }
- [Parakeet("NewName")]
+ [Parakeet(propertyName: "NewName")]
public string OldName { get; set; }
public NotEligible NotEligibleValue { get; set; } = new NotEligible();
diff --git a/src/Parakeet/Parakeet.csproj b/src/Parakeet/Parakeet.csproj
index 98eccf4..5c1b586 100644
--- a/src/Parakeet/Parakeet.csproj
+++ b/src/Parakeet/Parakeet.csproj
@@ -12,7 +12,7 @@
dapper dynamicparameter
$(Version)
$(Version)
- 1.0.5.0
+ 1.1.0.0
true
LICENSE
https://github.com/scottoffen/parakeet
diff --git a/src/Parakeet/ParakeetAttribute.cs b/src/Parakeet/ParakeetAttribute.cs
index 7c805b6..c7fd504 100644
--- a/src/Parakeet/ParakeetAttribute.cs
+++ b/src/Parakeet/ParakeetAttribute.cs
@@ -1,5 +1,6 @@
using System;
using System.Data;
+using System.Runtime.InteropServices;
namespace Parakeet
{
@@ -26,97 +27,27 @@ public class ParakeetAttribute : Attribute
public ParakeetAttribute() { }
- public ParakeetAttribute(string name)
+ public ParakeetAttribute(string propertyName = null, ParameterDirection direction = ParameterDirection.Input, string tableName = null, int size = -1, byte precision = 0, byte scale = 0)
{
- Name = name;
- }
-
- public ParakeetAttribute(ParameterDirection direction)
- {
- Direction = direction;
- }
-
- public ParakeetAttribute(DbType dbType)
- {
- DbType = dbType;
- }
-
- public ParakeetAttribute(string name, ParameterDirection direction)
- {
- Name = name;
- Direction = direction;
- }
-
- public ParakeetAttribute(string name, DbType dbType)
- {
- Name = name;
- DbType = dbType;
- }
-
- public ParakeetAttribute(ParameterDirection direction, DbType dbType)
- {
- Direction = direction;
- DbType = dbType;
- }
-
- public ParakeetAttribute(string name, ParameterDirection direction, DbType dbType)
- {
- Name = name;
- Direction = direction;
- DbType = dbType;
- }
-
- public ParakeetAttribute(string name, ParameterDirection direction, DbType dbType, int size)
- {
- Name = name;
+ Name = propertyName;
Direction = direction;
- DbType = dbType;
- Size = size;
- }
+ TableName = tableName;
- public ParakeetAttribute(string name, ParameterDirection direction, DbType dbType, int size, byte precision)
- {
- Name = name;
- Direction = direction;
- DbType = dbType;
- Size = size;
- Precision = precision;
+ if (size > 0) Size = size;
+ if (precision > 0) Precision = precision;
+ if (scale > 0) Scale = scale;
}
- public ParakeetAttribute(string name, ParameterDirection direction, DbType dbType, int size, byte precision, byte scale)
+ public ParakeetAttribute(DbType dbType, string propertyName = null, ParameterDirection direction = ParameterDirection.Input, string tableName = null, int size = -1, byte precision = 0, byte scale = 0)
{
- Name = name;
+ Name = propertyName;
Direction = direction;
DbType = dbType;
- Size = size;
- Precision = precision;
- Scale = scale;
- }
+ TableName = tableName;
- public ParakeetAttribute(DbType dbType, int size, byte precision, byte scale)
- {
- DbType = dbType;
- Size = size;
- Precision = precision;
- Scale = scale;
- }
-
- public ParakeetAttribute(string name, DbType dbType, int size, byte precision, byte scale)
- {
- Name = name;
- DbType = dbType;
- Size = size;
- Precision = precision;
- Scale = scale;
- }
-
- public ParakeetAttribute(ParameterDirection direction, DbType dbType, int size, byte precision, byte scale)
- {
- Direction = direction;
- DbType = dbType;
- Size = size;
- Precision = precision;
- Scale = scale;
+ if (size > 0) Size = size;
+ if (precision > 0) Precision = precision;
+ if (scale > 0) Scale = scale;
}
}
}