Skip to content

Commit f809880

Browse files
committed
Fixed FSharp record constructor failing if members are dropped due to missing data mapping. Return default value instead.
1 parent 0c03631 commit f809880

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

src/SQLProvider.Common/SqlRuntime.Common.fs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,17 @@ type SqlEntity(dc: ISqlDataContext, tableName, columns: ColumnLookup, activeColu
393393
#endif
394394
yield propertyTypeMapping (prop.Name, typedNone)
395395
| true, dataVal -> yield propertyTypeMapping (prop.Name, (Utilities.convertTypes dataVal prop.PropertyType))
396-
| false, _ -> ()
396+
| false, _ ->
397+
if Utilities.isVOpt prop.PropertyType then
398+
#if NETSTANDARD21
399+
let typedNone = System.Runtime.CompilerServices.RuntimeHelpers.GetUninitializedObject prop.PropertyType
400+
#else
401+
let typedNone = FormatterServices.GetUninitializedObject prop.PropertyType
402+
#endif
403+
yield propertyTypeMapping (prop.Name, typedNone)
404+
else
405+
yield propertyTypeMapping (prop.Name, null)
406+
()
397407
|]
398408
unbox<'a> (ctor(values))
399409
else

0 commit comments

Comments
 (0)