Skip to content

Commit 0d1aaf0

Browse files
Add support to DateOnly and TimeOnly
1 parent da0205a commit 0d1aaf0

File tree

10 files changed

+45
-31
lines changed

10 files changed

+45
-31
lines changed

EntityFrameworkExtras.EFCore2.NetStandard20/EntityFrameworkExtras.EFCore2.NetStandard20.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<AssemblyName>EntityFrameworkExtras.EFCore</AssemblyName>
66
<SignAssembly>true</SignAssembly>
77
<AssemblyOriginatorKeyFile>Key.snk</AssemblyOriginatorKeyFile>
8-
<Version>2.0.7</Version>
8+
<Version>2.0.8</Version>
99
<Description>EntityFrameworkExtras provides some useful additions to EntityFramework such as executing Stored Procedures with User-Defined Table Types and Output Parameters.</Description>
1010
<RootNamespace>EntityFrameworkExtras.EFCore</RootNamespace>
1111
<Authors>ZZZ Projects &amp; Michael Rodda &amp; Craig Bovis</Authors>

EntityFrameworkExtras.EFCore3.NetStandard20/EntityFrameworkExtras.EFCore3.NetStandard20.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<AssemblyName>EntityFrameworkExtras.EFCore</AssemblyName>
66
<SignAssembly>true</SignAssembly>
77
<AssemblyOriginatorKeyFile>Key.snk</AssemblyOriginatorKeyFile>
8-
<Version>3.0.7</Version>
8+
<Version>3.0.8</Version>
99
<Description>EntityFrameworkExtras provides some useful additions to EntityFramework such as executing Stored Procedures with User-Defined Table Types and Output Parameters.</Description>
1010
<RootNamespace>EntityFrameworkExtras.EFCore</RootNamespace>
1111
<Authors>ZZZ Projects &amp; Michael Rodda &amp; Craig Bovis</Authors>

EntityFrameworkExtras.EFCore3.NetStandard21/EntityFrameworkExtras.EFCore3.NetStandard21.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<AssemblyName>EntityFrameworkExtras.EFCore</AssemblyName>
66
<SignAssembly>true</SignAssembly>
77
<AssemblyOriginatorKeyFile>Key.snk</AssemblyOriginatorKeyFile>
8-
<Version>3.0.7</Version>
8+
<Version>3.0.8</Version>
99
<Description>EntityFrameworkExtras provides some useful additions to EntityFramework such as executing Stored Procedures with User-Defined Table Types and Output Parameters.</Description>
1010
<RootNamespace>EntityFrameworkExtras.EFCore</RootNamespace>
1111
<Company>EntityFrameworkExtras.EFCore</Company>

EntityFrameworkExtras.EFCore5/EntityFrameworkExtras.EFCore5.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
44
<TargetFramework>net5.0</TargetFramework>
@@ -8,7 +8,7 @@
88
<DocumentationFile>bin\Release\net5.0\EntityFrameworkExtras.EFCore.xml</DocumentationFile>
99
<SignAssembly>True</SignAssembly>
1010
<AssemblyOriginatorKeyFile>Key.snk</AssemblyOriginatorKeyFile>
11-
<Version>5.0.7</Version>
11+
<Version>5.0.8</Version>
1212
<Authors>ZZZ Projects &amp; Michael Rodda &amp; Craig Bovis</Authors>
1313
<Company>EntityFrameworkExtras.EFCore</Company>
1414
<Product>EntityFrameworkExtras.EFCore</Product>

EntityFrameworkExtras.EFCore6/EntityFrameworkExtras.EFCore6.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<DocumentationFile>bin\Release\net6.0\EntityFrameworkExtras.EFCore.xml</DocumentationFile>
1111
<SignAssembly>True</SignAssembly>
1212
<AssemblyOriginatorKeyFile>Key.snk</AssemblyOriginatorKeyFile>
13-
<Version>6.0.7</Version>
13+
<Version>6.0.8</Version>
1414
<Authors>ZZZ Projects &amp; Michael Rodda &amp; Craig Bovis</Authors>
1515
<Company>EntityFrameworkExtras.EFCore</Company>
1616
<Product>EntityFrameworkExtras.EFCore</Product>

EntityFrameworkExtras.EFCore7/EntityFrameworkExtras.EFCore7.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
44
<TargetFramework>net6.0</TargetFramework>
@@ -10,7 +10,7 @@
1010
<DocumentationFile>bin\Release\net6.0\EntityFrameworkExtras.EFCore.xml</DocumentationFile>
1111
<SignAssembly>True</SignAssembly>
1212
<AssemblyOriginatorKeyFile>Key.snk</AssemblyOriginatorKeyFile>
13-
<Version>7.0.7</Version>
13+
<Version>7.0.8</Version>
1414
<Authors>ZZZ Projects &amp; Michael Rodda &amp; Craig Bovis</Authors>
1515
<Company>EntityFrameworkExtras.EFCore</Company>
1616
<Product>EntityFrameworkExtras.EFCore</Product>

EntityFrameworkExtras.EFCore8/EntityFrameworkExtras.EFCore8.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
44
<TargetFramework>net8.0</TargetFramework>
@@ -10,7 +10,7 @@
1010
<DocumentationFile>bin\Release\net6.0\EntityFrameworkExtras.EFCore.xml</DocumentationFile>
1111
<SignAssembly>True</SignAssembly>
1212
<AssemblyOriginatorKeyFile>Key.snk</AssemblyOriginatorKeyFile>
13-
<Version>8.0.7</Version>
13+
<Version>8.0.8</Version>
1414
<Authors>ZZZ Projects &amp; Michael Rodda &amp; Craig Bovis</Authors>
1515
<Company>EntityFrameworkExtras.EFCore</Company>
1616
<Product>EntityFrameworkExtras.EFCore</Product>

EntityFrameworkExtras.EFCore9/EntityFrameworkExtras.EFCore9.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<DocumentationFile>bin\Release\net6.0\EntityFrameworkExtras.EFCore.xml</DocumentationFile>
1111
<SignAssembly>True</SignAssembly>
1212
<AssemblyOriginatorKeyFile>Key.snk</AssemblyOriginatorKeyFile>
13-
<Version>9.0.7</Version>
13+
<Version>9.0.8</Version>
1414
<Authors>ZZZ Projects &amp; Michael Rodda &amp; Craig Bovis</Authors>
1515
<Company>EntityFrameworkExtras.EFCore</Company>
1616
<Product>EntityFrameworkExtras.EFCore</Product>

EntityFrameworkExtras.Shared/DatabaseExtensions.cs

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,24 @@ private static void SetOutputParameterValues(IEnumerable<SqlParameter> sqlParame
6767

6868
if (propertyInfo != null)
6969
{
70-
propertyInfo.SetValue(storedProcedure,
71-
(sqlParameter.Value == DBNull.Value) ?
72-
GetDefault(propertyInfo.PropertyType) :
73-
sqlParameter.Value, null);
70+
var value = sqlParameter.Value;
71+
72+
if(value == DBNull.Value)
73+
{
74+
value = GetDefault(propertyInfo.PropertyType);
75+
}
76+
#if NET6_0_OR_GREATER
77+
else if(propertyInfo.PropertyType == typeof(DateOnly) && value is DateTime)
78+
{
79+
value = DateOnly.FromDateTime((DateTime)value);
80+
}
81+
else if(propertyInfo.PropertyType == typeof(TimeOnly) && value is TimeSpan)
82+
{
83+
value = TimeOnly.FromTimeSpan((TimeSpan)value);
84+
}
85+
#endif
86+
87+
propertyInfo.SetValue(storedProcedure, value, null);
7488
}
7589
}
7690
}

Z.EntityFrameworkExtras.Lab.EFCore9/Request_storeProcedure_DateTimeOnly.cs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -64,20 +64,20 @@ DROP PROCEDURE [dbo].[PROC_Get_EntitySimple]
6464
{
6565
commande.CommandText = @"
6666
CREATE PROCEDURE [dbo].[PROC_Get_EntitySimple]
67-
68-
@ParameterID INT ,
69-
@DateOnly DATE,
70-
@TimeOnly TIME(7),
71-
@ParameterInt INT = NULL OUTPUT
72-
73-
67+
@ParameterID INT,
68+
@DateOnly DATE OUTPUT,
69+
@TimeOnly TIME(7) OUTPUT
7470
AS
75-
BEGIN
76-
update EntitySimples
77-
Set ColumnInt = @ParameterID ;
71+
BEGIN
72+
-- Example update; make sure this is what you want (no WHERE clause)
73+
UPDATE EntitySimples
74+
SET ColumnInt = @ParameterID;
7875
79-
Set @ParameterInt = @ParameterID +1
76+
-- Set output values
77+
SET @DateOnly = CAST(GETDATE() AS DATE);
78+
SET @TimeOnly = CAST(GETDATE() AS TIME(7));
8079
END
80+
8181
";
8282
commande.ExecuteNonQuery();
8383
}
@@ -86,7 +86,7 @@ update EntitySimples
8686
// TEST
8787
using (var context = new EntityContext())
8888
{
89-
var proc_Get_EntitySimple = new Proc_Get_EntitySimple() { ParameterID = 2, DateOnly = DateOnly.MinValue, TimeOnly = TimeOnly.MinValue };
89+
var proc_Get_EntitySimple = new Proc_Get_EntitySimple() { ParameterID = 2 };
9090

9191
using (var tran = new TransactionScope())
9292
{
@@ -121,14 +121,14 @@ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
121121
[StoredProcedure("PROC_Get_EntitySimple")]
122122
public class Proc_Get_EntitySimple
123123
{
124-
[StoredProcedureParameter(SqlDbType.Int, Direction = ParameterDirection.Output)]
125-
public int ParameterInt { get; set; }
124+
//[StoredProcedureParameter(SqlDbType.Int, Direction = ParameterDirection.Output)]
125+
//public int ParameterInt { get; set; }
126126

127127
[StoredProcedureParameter(SqlDbType.Int, Direction = ParameterDirection.Input)]
128128
public int ParameterID { get; set; }
129-
[StoredProcedureParameter(SqlDbType.Date, Direction = ParameterDirection.Input)]
129+
[StoredProcedureParameter(SqlDbType.Date, Direction = ParameterDirection.Output)]
130130
public DateOnly DateOnly { get; set; }
131-
[StoredProcedureParameter(SqlDbType.Time, Direction = ParameterDirection.Input)]
131+
[StoredProcedureParameter(SqlDbType.Time, Direction = ParameterDirection.Output)]
132132
public TimeOnly TimeOnly { get; set; }
133133
}
134134

0 commit comments

Comments
 (0)