I have now created the same stored procedure with EF Core Power Tools ( ErikEJ/EFCorePowerTools: Entity Framework Core Power Tools - reverse engineering, migrations and model visualization for EF Core (github.com))
the code is what I have been expected - it generates:
Value = Mitglied_ID ?? Convert.DBNull
public virtual async Task<int> ASSISTENT_PfuscherAsync(int? Mitglied_ID, string Name, string Vorname, string Titel, string Anrede, string Postleitzahl, string Ort, string Strasse, DateTime? Geburtsdatum, string Sozialversicherungsnummer, string Beruf, bool? Firma, string Notiz, string Benutzer, int? Akt_ID, int? Ermittler_ID, int? Behörde_ID, int? Verfahrensabschluss_ID, string Tätigkeit, int? Pfuschertyp, decimal? Strafe, DateTime? Erhebungsdatum, DateTime? Anzeigedatum, DateTime? Einstellungsdatum, bool? Übertretung_GEWO, bool? Übertretung_KBO, string PfuscherbeziehungAktNotiz, OutputParameter<int> returnValue = null, CancellationToken cancellationToken = default)
{
var parameterreturnValue = new SqlParameter
{
ParameterName = "returnValue",
Direction = System.Data.ParameterDirection.Output,
SqlDbType = System.Data.SqlDbType.Int,
};
var sqlParameters = new []
{
new SqlParameter
{
ParameterName = "Mitglied_ID",
Value = Mitglied_ID ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.Int,
},
new SqlParameter
{
ParameterName = "Name",
Size = 255,
Value = Name ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.VarChar,
},
new SqlParameter
{
ParameterName = "Vorname",
Size = 255,
Value = Vorname ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.VarChar,
},
new SqlParameter
{
ParameterName = "Titel",
Size = 255,
Value = Titel ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.VarChar,
},
new SqlParameter
{
ParameterName = "Anrede",
Size = 255,
Value = Anrede ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.VarChar,
},
new SqlParameter
{
ParameterName = "Postleitzahl",
Size = 10,
Value = Postleitzahl ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.VarChar,
},
new SqlParameter
{
ParameterName = "Ort",
Size = 255,
Value = Ort ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.VarChar,
},
new SqlParameter
{
ParameterName = "Strasse",
Size = 255,
Value = Strasse ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.VarChar,
},
new SqlParameter
{
ParameterName = "Geburtsdatum",
Scale = 7,
Value = Geburtsdatum ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.DateTime2,
},
new SqlParameter
{
ParameterName = "Sozialversicherungsnummer",
Size = 10,
Value = Sozialversicherungsnummer ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.VarChar,
},
new SqlParameter
{
ParameterName = "Beruf",
Size = 255,
Value = Beruf ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.VarChar,
},
new SqlParameter
{
ParameterName = "Firma",
Value = Firma ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.Bit,
},
new SqlParameter
{
ParameterName = "Notiz",
Size = 8000,
Value = Notiz ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.VarChar,
},
new SqlParameter
{
ParameterName = "Benutzer",
Size = 100,
Value = Benutzer ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.VarChar,
},
new SqlParameter
{
ParameterName = "Akt_ID",
Value = Akt_ID ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.Int,
},
new SqlParameter
{
ParameterName = "Ermittler_ID",
Value = Ermittler_ID ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.Int,
},
new SqlParameter
{
ParameterName = "Behörde_ID",
Value = Behörde_ID ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.Int,
},
new SqlParameter
{
ParameterName = "Verfahrensabschluss_ID",
Value = Verfahrensabschluss_ID ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.Int,
},
new SqlParameter
{
ParameterName = "Tätigkeit",
Size = 255,
Value = Tätigkeit ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.VarChar,
},
new SqlParameter
{
ParameterName = "Pfuschertyp",
Value = Pfuschertyp ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.Int,
},
new SqlParameter
{
ParameterName = "Strafe",
Precision = 19,
Scale = 4,
Value = Strafe ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.Money,
},
new SqlParameter
{
ParameterName = "Erhebungsdatum",
Scale = 7,
Value = Erhebungsdatum ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.DateTime2,
},
new SqlParameter
{
ParameterName = "Anzeigedatum",
Scale = 7,
Value = Anzeigedatum ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.DateTime2,
},
new SqlParameter
{
ParameterName = "Einstellungsdatum",
Scale = 7,
Value = Einstellungsdatum ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.DateTime2,
},
new SqlParameter
{
ParameterName = "Übertretung_GEWO",
Value = Übertretung_GEWO ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.Bit,
},
new SqlParameter
{
ParameterName = "Übertretung_KBO",
Value = Übertretung_KBO ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.Bit,
},
new SqlParameter
{
ParameterName = "PfuscherbeziehungAktNotiz",
Size = 8000,
Value = PfuscherbeziehungAktNotiz ?? Convert.DBNull,
SqlDbType = System.Data.SqlDbType.VarChar,
},
parameterreturnValue,
};
var _ = await _context.Database.ExecuteSqlRawAsync("EXEC @returnValue = [dbo].[ASSISTENT_Pfuscher] @Mitglied_ID, @Name, @Vorname, @Titel, @Anrede, @Postleitzahl, @Ort, @Strasse, @Geburtsdatum, @Sozialversicherungsnummer, @Beruf, @Firma, @Notiz, @Benutzer, @Akt_ID, @Ermittler_ID, @Behörde_ID, @Verfahrensabschluss_ID, @Tätigkeit, @Pfuschertyp, @Strafe, @Erhebungsdatum, @Anzeigedatum, @Einstellungsdatum, @Übertretung_GEWO, @Übertretung_KBO, @PfuscherbeziehungAktNotiz", sqlParameters, cancellationToken);
returnValue?.SetValue(parameterreturnValue.Value);
return _;
}
robert