Skip to content

Commit 266526c

Browse files
committed
#379 Allow Table Valued Functions to use nullable parameters. Thanks to oruchreis.
1 parent 103c5b8 commit 266526c

File tree

3 files changed

+6
-6
lines changed

3 files changed

+6
-6
lines changed

EntityFramework.Reverse.POCO.Generator/EF.Reverse.POCO.Core.ttinclude

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3873,11 +3873,11 @@ SELECT SERVERPROPERTY('Edition') AS Edition,
38733873
var sb = new StringBuilder();
38743874
foreach (var p in sp.Parameters.OrderBy(x => x.Ordinal))
38753875
{
3876-
sb.AppendLine(string.Format(" var {0}Param = new System.Data.Entity.Core.Objects.ObjectParameter(\"{1}\", typeof({2})) {{ Value = {3} }};",
3876+
sb.AppendLine(string.Format(" var {0}Param = new System.Data.Entity.Core.Objects.ObjectParameter(\"{1}\", typeof({2})) {{ Value = (object){3} }};",
38773877
p.NameHumanCase,
38783878
p.Name.Substring(1),
38793879
p.PropertyType,
3880-
p.NameHumanCase + (p.Mode == StoredProcedureParameterMode.In && NotNullable.Contains(p.PropertyType.ToLowerInvariant()) ? string.Empty : ".GetValueOrDefault()" )));
3880+
p.NameHumanCase + (p.Mode == StoredProcedureParameterMode.In && NotNullable.Contains(p.PropertyType.ToLowerInvariant()) ? string.Empty : " ?? System.DBNull.Value" )));
38813881
}
38823882
return sb.ToString();
38833883
};

Tester/TestDatabase_DataAnnotation.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,8 @@ public System.Collections.Generic.List<Synonyms_SimpleStoredProcReturnModel> Syn
190190
[CodeFirstStoreFunctions.DbFunctionDetails(DatabaseSchema = "dbo", ResultColumnName = "IntValue")]
191191
public IQueryable<CsvToIntReturnModel> CsvToInt(string array, string array2)
192192
{
193-
var arrayParam = new System.Data.Entity.Core.Objects.ObjectParameter("array", typeof(string)) { Value = array };
194-
var array2Param = new System.Data.Entity.Core.Objects.ObjectParameter("array2", typeof(string)) { Value = array2 };
193+
var arrayParam = new System.Data.Entity.Core.Objects.ObjectParameter("array", typeof(string)) { Value = (object)array };
194+
var array2Param = new System.Data.Entity.Core.Objects.ObjectParameter("array2", typeof(string)) { Value = (object)array2 };
195195

196196
return ((System.Data.Entity.Infrastructure.IObjectContextAdapter)this).ObjectContext.CreateQuery<CsvToIntReturnModel>("[TestDbContext].[CsvToInt](@array, @array2)", arrayParam, array2Param);
197197
}

Tester/TestDatabase_NoDataAnnotation.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,8 @@ public System.Collections.Generic.List<Synonyms_SimpleStoredProcReturnModel> Syn
188188
[CodeFirstStoreFunctions.DbFunctionDetails(DatabaseSchema = "dbo", ResultColumnName = "IntValue")]
189189
public IQueryable<CsvToIntReturnModel> CsvToInt(string array, string array2)
190190
{
191-
var arrayParam = new System.Data.Entity.Core.Objects.ObjectParameter("array", typeof(string)) { Value = array };
192-
var array2Param = new System.Data.Entity.Core.Objects.ObjectParameter("array2", typeof(string)) { Value = array2 };
191+
var arrayParam = new System.Data.Entity.Core.Objects.ObjectParameter("array", typeof(string)) { Value = (object)array };
192+
var array2Param = new System.Data.Entity.Core.Objects.ObjectParameter("array2", typeof(string)) { Value = (object)array2 };
193193

194194
return ((System.Data.Entity.Infrastructure.IObjectContextAdapter)this).ObjectContext.CreateQuery<CsvToIntReturnModel>("[TestDbContext].[CsvToInt](@array, @array2)", arrayParam, array2Param);
195195
}

0 commit comments

Comments
 (0)