diff --git a/src/EFCore.Relational/Design/Internal/RelationalCSharpRuntimeAnnotationCodeGenerator.cs b/src/EFCore.Relational/Design/Internal/RelationalCSharpRuntimeAnnotationCodeGenerator.cs index afdef39f68a..a66eefc8a38 100644 --- a/src/EFCore.Relational/Design/Internal/RelationalCSharpRuntimeAnnotationCodeGenerator.cs +++ b/src/EFCore.Relational/Design/Internal/RelationalCSharpRuntimeAnnotationCodeGenerator.cs @@ -492,7 +492,6 @@ private void Create(IStoredProcedure storedProcedure, string sprocVariable, CSha .Append(code.Literal(storedProcedure.Name)).AppendLine(",") .Append(code.Literal(storedProcedure.Schema)).AppendLine(",") .Append(code.Literal(storedProcedure.IsRowsAffectedReturned)).AppendLine(",") - .Append(code.Literal(storedProcedure.AreTransactionsSuppressed)) .AppendLine(");") .DecrementIndent() .AppendLine(); diff --git a/src/EFCore.Relational/Metadata/Builders/IConventionStoredProcedureBuilder.cs b/src/EFCore.Relational/Metadata/Builders/IConventionStoredProcedureBuilder.cs index f335504e7db..28401288853 100644 --- a/src/EFCore.Relational/Metadata/Builders/IConventionStoredProcedureBuilder.cs +++ b/src/EFCore.Relational/Metadata/Builders/IConventionStoredProcedureBuilder.cs @@ -156,20 +156,4 @@ public interface IConventionStoredProcedureBuilder : IConventionAnnotatableBuild /// Indicates whether the configuration was specified using a data annotation. /// if the column of the result can be used for the stored procedure. bool CanHaveRowsAffectedResultColumn(string propertyName, bool fromDataAnnotation = false); - - /// - /// Prevents automatically creating a transaction when executing this stored procedure. - /// - /// A value indicating whether the automatic transactions should be prevented. - /// Indicates whether the configuration was specified using a data annotation. - /// The same builder instance so that multiple configuration calls can be chained. - IConventionStoredProcedureBuilder? SuppressTransactions(bool suppress, bool fromDataAnnotation = false); - - /// - /// Returns a value indicating whether the transaction suppression can be set for stored procedure. - /// - /// A value indicating whether the automatic transactions should be prevented. - /// Indicates whether the configuration was specified using a data annotation. - /// if the column of the result can be used for the stored procedure. - bool CanSetSuppressTransactions(bool suppress, bool fromDataAnnotation = false); } diff --git a/src/EFCore.Relational/Metadata/Builders/OwnedNavigationStoredProcedureBuilder.cs b/src/EFCore.Relational/Metadata/Builders/OwnedNavigationStoredProcedureBuilder.cs index c60ace6e276..75cddebdbe9 100644 --- a/src/EFCore.Relational/Metadata/Builders/OwnedNavigationStoredProcedureBuilder.cs +++ b/src/EFCore.Relational/Metadata/Builders/OwnedNavigationStoredProcedureBuilder.cs @@ -219,17 +219,6 @@ public virtual OwnedNavigationStoredProcedureBuilder HasRowsAffectedReturnValue( return this; } - /// - /// Prevents automatically creating a transaction when executing this stored procedure. - /// - /// A value indicating whether the automatic transactions should be prevented. - /// The same builder instance so that multiple configuration calls can be chained. - public virtual OwnedNavigationStoredProcedureBuilder SuppressTransactions(bool suppress = true) - { - Builder.SuppressTransactions(suppress, ConfigurationSource.Explicit); - return this; - } - /// /// Adds or updates an annotation on the stored procedure. If an annotation with the key specified in /// already exists, its value will be updated. diff --git a/src/EFCore.Relational/Metadata/Builders/OwnedNavigationStoredProcedureBuilder``.cs b/src/EFCore.Relational/Metadata/Builders/OwnedNavigationStoredProcedureBuilder``.cs index 4c866fbfa68..c95d5e1feb7 100644 --- a/src/EFCore.Relational/Metadata/Builders/OwnedNavigationStoredProcedureBuilder``.cs +++ b/src/EFCore.Relational/Metadata/Builders/OwnedNavigationStoredProcedureBuilder``.cs @@ -231,14 +231,6 @@ public virtual OwnedNavigationStoredProcedureBuilder HasRowsAffectedReturnValue(bool rowsAffectedReturned = true) => (OwnedNavigationStoredProcedureBuilder)base.HasRowsAffectedReturnValue(rowsAffectedReturned); - /// - /// Prevents automatically creating a transaction when executing this stored procedure. - /// - /// A value indicating whether the automatic transactions should be prevented. - /// The same builder instance so that multiple configuration calls can be chained. - public new virtual OwnedNavigationStoredProcedureBuilder SuppressTransactions(bool suppress = true) - => (OwnedNavigationStoredProcedureBuilder)base.SuppressTransactions(suppress); - /// /// Adds or updates an annotation on the stored procedure. If an annotation with the key specified in /// already exists, its value will be updated. diff --git a/src/EFCore.Relational/Metadata/Builders/StoredProcedureBuilder.cs b/src/EFCore.Relational/Metadata/Builders/StoredProcedureBuilder.cs index 5ab996b3ec1..53c614b673b 100644 --- a/src/EFCore.Relational/Metadata/Builders/StoredProcedureBuilder.cs +++ b/src/EFCore.Relational/Metadata/Builders/StoredProcedureBuilder.cs @@ -182,17 +182,6 @@ public virtual StoredProcedureBuilder HasRowsAffectedReturnValue(bool rowsAffect return this; } - /// - /// Prevents automatically creating a transaction when executing this stored procedure. - /// - /// A value indicating whether the automatic transactions should be prevented. - /// The same builder instance so that multiple configuration calls can be chained. - public virtual StoredProcedureBuilder SuppressTransactions(bool suppress = true) - { - Builder.SuppressTransactions(suppress, ConfigurationSource.Explicit); - return this; - } - /// /// Adds or updates an annotation on the stored procedure. If an annotation with the key specified in /// already exists, its value will be updated. diff --git a/src/EFCore.Relational/Metadata/Builders/StoredProcedureBuilder`.cs b/src/EFCore.Relational/Metadata/Builders/StoredProcedureBuilder`.cs index 03fab03faf0..dd1ccd66945 100644 --- a/src/EFCore.Relational/Metadata/Builders/StoredProcedureBuilder`.cs +++ b/src/EFCore.Relational/Metadata/Builders/StoredProcedureBuilder`.cs @@ -314,14 +314,6 @@ public virtual StoredProcedureBuilder HasResultColumn HasRowsAffectedReturnValue(bool rowsAffectedReturned = true) => (StoredProcedureBuilder)base.HasRowsAffectedReturnValue(rowsAffectedReturned); - /// - /// Prevents automatically creating a transaction when executing this stored procedure. - /// - /// A value indicating whether the automatic transactions should be prevented. - /// The same builder instance so that multiple configuration calls can be chained. - public new virtual StoredProcedureBuilder SuppressTransactions(bool suppress = true) - => (StoredProcedureBuilder)base.SuppressTransactions(suppress); - /// /// Adds or updates an annotation on the stored procedure. If an annotation with the key specified in /// already exists, its value will be updated. diff --git a/src/EFCore.Relational/Metadata/Conventions/RelationalRuntimeModelConvention.cs b/src/EFCore.Relational/Metadata/Conventions/RelationalRuntimeModelConvention.cs index ef0b3f366e4..de712912343 100644 --- a/src/EFCore.Relational/Metadata/Conventions/RelationalRuntimeModelConvention.cs +++ b/src/EFCore.Relational/Metadata/Conventions/RelationalRuntimeModelConvention.cs @@ -498,8 +498,7 @@ private RuntimeStoredProcedure Create(IStoredProcedure storedProcedure, RuntimeE runtimeEntityType, storedProcedure.Name, storedProcedure.Schema, - storedProcedure.IsRowsAffectedReturned, - storedProcedure.AreTransactionsSuppressed); + storedProcedure.IsRowsAffectedReturned); foreach (var parameter in storedProcedure.Parameters) { diff --git a/src/EFCore.Relational/Metadata/IConventionStoredProcedure.cs b/src/EFCore.Relational/Metadata/IConventionStoredProcedure.cs index 7d02674d502..3eef8f6d81e 100644 --- a/src/EFCore.Relational/Metadata/IConventionStoredProcedure.cs +++ b/src/EFCore.Relational/Metadata/IConventionStoredProcedure.cs @@ -146,18 +146,4 @@ public interface IConventionStoredProcedure : IReadOnlyStoredProcedure, IConvent /// Indicates whether the configuration was specified using a data annotation. /// The configured value. bool SetIsRowsAffectedReturned(bool rowsAffectedReturned, bool fromDataAnnotation = false); - - /// - /// Prevents automatically creating a transaction when executing this stored procedure. - /// - /// A value indicating whether the automatic transactions should be prevented. - /// Indicates whether the configuration was specified using a data annotation. - /// The configured value. - bool SetAreTransactionsSuppressed(bool areTransactionsSuppressed, bool fromDataAnnotation = false); - - /// - /// Gets the configuration source for . - /// - /// The configuration source for . - ConfigurationSource? GetAreTransactionsSuppressedConfigurationSource(); } diff --git a/src/EFCore.Relational/Metadata/IMutableStoredProcedure.cs b/src/EFCore.Relational/Metadata/IMutableStoredProcedure.cs index 17fddb3dec5..170c66f0fb7 100644 --- a/src/EFCore.Relational/Metadata/IMutableStoredProcedure.cs +++ b/src/EFCore.Relational/Metadata/IMutableStoredProcedure.cs @@ -26,12 +26,6 @@ public interface IMutableStoredProcedure : IReadOnlyStoredProcedure, IMutableAnn /// new IMutableEntityType EntityType { get; } - /// - /// Returns a value indicating whether automatic creation of transactions is disabled when executing this stored procedure. - /// - /// The configured value. - new bool AreTransactionsSuppressed { get; set; } - /// /// Gets or sets a value indicating whether this stored procedure returns the number of rows affected. /// diff --git a/src/EFCore.Relational/Metadata/IReadOnlyStoredProcedure.cs b/src/EFCore.Relational/Metadata/IReadOnlyStoredProcedure.cs index cb3bd5012ed..770103cbb74 100644 --- a/src/EFCore.Relational/Metadata/IReadOnlyStoredProcedure.cs +++ b/src/EFCore.Relational/Metadata/IReadOnlyStoredProcedure.cs @@ -25,11 +25,6 @@ public interface IReadOnlyStoredProcedure : IReadOnlyAnnotatable /// IReadOnlyEntityType EntityType { get; } - /// - /// Returns a value indicating whether automatic creation of transactions is disabled when executing this stored procedure. - /// - bool AreTransactionsSuppressed { get; } - /// /// Gets a value indicating whether this stored procedure returns the number of rows affected. /// diff --git a/src/EFCore.Relational/Metadata/Internal/InternalStoredProcedureBuilder.cs b/src/EFCore.Relational/Metadata/Internal/InternalStoredProcedureBuilder.cs index 2cd5e7877b5..d97af283d05 100644 --- a/src/EFCore.Relational/Metadata/Internal/InternalStoredProcedureBuilder.cs +++ b/src/EFCore.Relational/Metadata/Internal/InternalStoredProcedureBuilder.cs @@ -410,33 +410,6 @@ public virtual bool CanHaveRowsAffectedReturn(bool rowsAffectedReturned, Configu => Metadata.IsRowsAffectedReturned == rowsAffectedReturned || configurationSource.Overrides(Metadata.GetConfigurationSource()); - /// - /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to - /// the same compatibility standards as public APIs. It may be changed or removed without notice in - /// any release. You should only use it directly in your code with extreme caution and knowing that - /// doing so can result in application failures when updating to a new Entity Framework Core release. - /// - public virtual InternalStoredProcedureBuilder? SuppressTransactions(bool suppress, ConfigurationSource configurationSource) - { - if (!CanSuppressTransactions(suppress, configurationSource)) - { - return null; - } - - Metadata.SetAreTransactionsSuppressed(suppress, configurationSource); - return this; - } - - /// - /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to - /// the same compatibility standards as public APIs. It may be changed or removed without notice in - /// any release. You should only use it directly in your code with extreme caution and knowing that - /// doing so can result in application failures when updating to a new Entity Framework Core release. - /// - public virtual bool CanSuppressTransactions(bool suppress, ConfigurationSource configurationSource) - => Metadata.AreTransactionsSuppressed == suppress - || configurationSource.Overrides(Metadata.GetAreTransactionsSuppressedConfigurationSource()); - IConventionStoredProcedure IConventionStoredProcedureBuilder.Metadata { [DebuggerStepThrough] @@ -524,15 +497,4 @@ bool IConventionStoredProcedureBuilder.CanHaveResultColumn(string propertyName, [DebuggerStepThrough] bool IConventionStoredProcedureBuilder.CanHaveRowsAffectedResultColumn(string propertyName, bool fromDataAnnotation) => CanHaveRowsAffectedResultColumn(fromDataAnnotation ? ConfigurationSource.DataAnnotation : ConfigurationSource.Convention); - - /// - [DebuggerStepThrough] - IConventionStoredProcedureBuilder? IConventionStoredProcedureBuilder.SuppressTransactions(bool suppress, bool fromDataAnnotation) - => SuppressTransactions(suppress, fromDataAnnotation ? ConfigurationSource.DataAnnotation : ConfigurationSource.Convention); - - /// - [DebuggerStepThrough] - bool IConventionStoredProcedureBuilder.CanSetSuppressTransactions(bool suppress, bool fromDataAnnotation) - => CanSuppressTransactions(suppress, - fromDataAnnotation ? ConfigurationSource.DataAnnotation : ConfigurationSource.Convention); } diff --git a/src/EFCore.Relational/Metadata/Internal/StoredProcedure.cs b/src/EFCore.Relational/Metadata/Internal/StoredProcedure.cs index 47dee26ca2b..4ee73ef296c 100644 --- a/src/EFCore.Relational/Metadata/Internal/StoredProcedure.cs +++ b/src/EFCore.Relational/Metadata/Internal/StoredProcedure.cs @@ -22,14 +22,12 @@ public class StoredProcedure : private string? _schema; private string? _name; private InternalStoredProcedureBuilder? _builder; - private bool _areTransactionsSuppressed; private bool _isRowsAffectedReturned; private IStoreStoredProcedure? _storeStoredProcedure; private ConfigurationSource _configurationSource; private ConfigurationSource? _schemaConfigurationSource; private ConfigurationSource? _nameConfigurationSource; - private ConfigurationSource? _areTransactionsSuppressedConfigurationSource; /// /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to @@ -442,30 +440,6 @@ public virtual void SetName(string? name, string? schema, ConfigurationSource co public virtual ConfigurationSource? GetNameConfigurationSource() => _nameConfigurationSource; - /// - public virtual bool AreTransactionsSuppressed - { - get => _areTransactionsSuppressed; - set => SetAreTransactionsSuppressed(value, ConfigurationSource.Explicit); - } - - /// - /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to - /// the same compatibility standards as public APIs. It may be changed or removed without notice in - /// any release. You should only use it directly in your code with extreme caution and knowing that - /// doing so can result in application failures when updating to a new Entity Framework Core release. - /// - public virtual bool SetAreTransactionsSuppressed(bool areTransactionsSuppressed, ConfigurationSource configurationSource) - { - EnsureMutable(); - - _areTransactionsSuppressed = areTransactionsSuppressed; - - _areTransactionsSuppressedConfigurationSource = configurationSource.Max(_areTransactionsSuppressedConfigurationSource); - - return areTransactionsSuppressed; - } - /// /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to /// the same compatibility standards as public APIs. It may be changed or removed without notice in @@ -498,15 +472,6 @@ public virtual bool SetIsRowsAffectedReturned(bool rowsAffectedReturned) return rowsAffectedReturned; } - - /// - /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to - /// the same compatibility standards as public APIs. It may be changed or removed without notice in - /// any release. You should only use it directly in your code with extreme caution and knowing that - /// doing so can result in application failures when updating to a new Entity Framework Core release. - /// - public virtual ConfigurationSource? GetAreTransactionsSuppressedConfigurationSource() - => _areTransactionsSuppressedConfigurationSource; private static void UpdateOverrides( StoreObjectIdentifier oldId, @@ -851,17 +816,11 @@ IReadOnlyList IStoredProcedure.ResultColumns string? IConventionStoredProcedure.SetSchema(string? schema, bool fromDataAnnotation) => SetSchema(schema, fromDataAnnotation ? ConfigurationSource.DataAnnotation : ConfigurationSource.Convention); - /// - [DebuggerStepThrough] - bool IConventionStoredProcedure.SetAreTransactionsSuppressed(bool areTransactionsSuppressed, bool fromDataAnnotation) - => SetAreTransactionsSuppressed( - areTransactionsSuppressed, fromDataAnnotation ? ConfigurationSource.DataAnnotation : ConfigurationSource.Convention); - /// [DebuggerStepThrough] bool IConventionStoredProcedure.SetIsRowsAffectedReturned(bool rowsAffectedReturned, bool fromDataAnnotation) => SetIsRowsAffectedReturned(rowsAffectedReturned); - + /// [DebuggerStepThrough] IReadOnlyStoredProcedureParameter? IReadOnlyStoredProcedure.FindParameter(string propertyName) diff --git a/src/EFCore.Relational/Metadata/RuntimeStoredProcedure.cs b/src/EFCore.Relational/Metadata/RuntimeStoredProcedure.cs index 534a9f056ab..9eb2ba6073c 100644 --- a/src/EFCore.Relational/Metadata/RuntimeStoredProcedure.cs +++ b/src/EFCore.Relational/Metadata/RuntimeStoredProcedure.cs @@ -19,7 +19,6 @@ public class RuntimeStoredProcedure : AnnotatableBase, IRuntimeStoredProcedure private readonly string? _schema; private readonly string _name; private readonly bool _isRowsAffectedReturned; - private readonly bool _areTransactionsSuppressed; private IStoreStoredProcedure? _storeStoredProcedure; /// @@ -29,19 +28,16 @@ public class RuntimeStoredProcedure : AnnotatableBase, IRuntimeStoredProcedure /// The name. /// The schema. /// Whether this stored procedure returns the number of rows affected. - /// Whether the automatic transactions are surpressed. public RuntimeStoredProcedure( RuntimeEntityType entityType, string name, string? schema, - bool rowsAffectedReturned, - bool transactionsSuppressed) + bool rowsAffectedReturned) { EntityType = entityType; _name = name; _schema = schema; _isRowsAffectedReturned = rowsAffectedReturned; - _areTransactionsSuppressed = transactionsSuppressed; } /// @@ -151,13 +147,6 @@ string IStoredProcedure.Name get => _schema; } - /// - bool IReadOnlyStoredProcedure.AreTransactionsSuppressed - { - [DebuggerStepThrough] - get => _areTransactionsSuppressed; - } - /// bool IReadOnlyStoredProcedure.IsRowsAffectedReturned { diff --git a/test/EFCore.Design.Tests/Scaffolding/Internal/CSharpRuntimeModelCodeGeneratorTest.cs b/test/EFCore.Design.Tests/Scaffolding/Internal/CSharpRuntimeModelCodeGeneratorTest.cs index adb71981937..f7104c46ffc 100644 --- a/test/EFCore.Design.Tests/Scaffolding/Internal/CSharpRuntimeModelCodeGeneratorTest.cs +++ b/test/EFCore.Design.Tests/Scaffolding/Internal/CSharpRuntimeModelCodeGeneratorTest.cs @@ -2796,7 +2796,6 @@ public static void CreateAnnotations(RuntimeEntityType runtimeEntityType) Assert.Equal("TPC", insertSproc.Schema); Assert.Equal(new[] { "PrincipalBaseId", "PrincipalDerivedId", "Id" }, insertSproc.Parameters.Select(p => p.PropertyName)); Assert.Empty(insertSproc.ResultColumns); - Assert.True(insertSproc.AreTransactionsSuppressed); Assert.False(insertSproc.IsRowsAffectedReturned); Assert.Equal("bar1", insertSproc["foo"]); Assert.Same(principalBase, insertSproc.EntityType); @@ -2809,7 +2808,6 @@ public static void CreateAnnotations(RuntimeEntityType runtimeEntityType) Assert.Equal("TPC", updateSproc.Schema); Assert.Equal(new[] { "PrincipalBaseId", "PrincipalDerivedId", "Id" }, updateSproc.Parameters.Select(p => p.PropertyName)); Assert.Empty(updateSproc.ResultColumns); - Assert.False(updateSproc.AreTransactionsSuppressed); Assert.False(updateSproc.IsRowsAffectedReturned); Assert.Empty(updateSproc.GetAnnotations()); Assert.Same(principalBase, updateSproc.EntityType); @@ -2821,7 +2819,6 @@ public static void CreateAnnotations(RuntimeEntityType runtimeEntityType) Assert.Equal("TPC", deleteSproc.Schema); Assert.Equal(new[] { "Id" }, deleteSproc.Parameters.Select(p => p.Name)); Assert.Empty(deleteSproc.ResultColumns); - Assert.False(deleteSproc.AreTransactionsSuppressed); Assert.True(deleteSproc.IsRowsAffectedReturned); Assert.Same(principalBase, deleteSproc.EntityType); Assert.Equal("Id", deleteSproc.Parameters.Last().Name); @@ -2851,7 +2848,6 @@ public static void CreateAnnotations(RuntimeEntityType runtimeEntityType) Assert.Equal("TPC", insertSproc.Schema); Assert.Equal(new[] { "PrincipalBaseId", "PrincipalDerivedId" }, insertSproc.Parameters.Select(p => p.PropertyName)); Assert.Equal(new[] { "Id" }, insertSproc.ResultColumns.Select(p => p.PropertyName)); - Assert.False(insertSproc.AreTransactionsSuppressed); Assert.Null(insertSproc["foo"]); Assert.Same(principalDerived, insertSproc.EntityType); Assert.Equal("DerivedId", insertSproc.ResultColumns.Last().Name); @@ -2864,7 +2860,6 @@ public static void CreateAnnotations(RuntimeEntityType runtimeEntityType) Assert.Equal("Derived", updateSproc.Schema); Assert.Equal(new[] { "PrincipalBaseId", "PrincipalDerivedId", "Id" }, updateSproc.Parameters.Select(p => p.PropertyName)); Assert.Empty(updateSproc.ResultColumns); - Assert.False(updateSproc.AreTransactionsSuppressed); Assert.Empty(updateSproc.GetAnnotations()); Assert.Same(principalDerived, updateSproc.EntityType); Assert.Equal("Id", updateSproc.Parameters.Last().Name); @@ -2875,7 +2870,6 @@ public static void CreateAnnotations(RuntimeEntityType runtimeEntityType) Assert.Equal("TPC", deleteSproc.Schema); Assert.Equal(new[] { "Id" }, deleteSproc.Parameters.Select(p => p.PropertyName)); Assert.Empty(deleteSproc.ResultColumns); - Assert.False(deleteSproc.AreTransactionsSuppressed); Assert.Same(principalDerived, deleteSproc.EntityType); Assert.Equal("Id", deleteSproc.Parameters.Last().Name); Assert.Null(id.FindOverrides(StoreObjectIdentifier.Create(principalDerived, StoreObjectType.DeleteStoredProcedure).Value)); @@ -2949,7 +2943,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) eb.ToTable("PrincipalBase"); eb.ToView("PrincipalBaseView", tb => tb.Property(e => e.Id).HasAnnotation("foo", "bar2")); - eb.InsertUsingStoredProcedure(s => s.SuppressTransactions() + eb.InsertUsingStoredProcedure(s => s .HasParameter("PrincipalBaseId") .HasParameter("PrincipalDerivedId") .HasParameter(p => p.Id, pb => pb.HasName("BaseId").IsOutput().HasAnnotation("foo", "bar")) diff --git a/test/EFCore.Relational.Tests/ModelBuilding/RelationalModelBuilderTest.cs b/test/EFCore.Relational.Tests/ModelBuilding/RelationalModelBuilderTest.cs index e8613fc4bb5..fccef691451 100644 --- a/test/EFCore.Relational.Tests/ModelBuilding/RelationalModelBuilderTest.cs +++ b/test/EFCore.Relational.Tests/ModelBuilding/RelationalModelBuilderTest.cs @@ -236,7 +236,7 @@ public virtual void Conflicting_sproc_rows_affected_result_column_and_parameter_ public virtual void Duplicate_sproc_rows_affected_result_column_throws() { var modelBuilder = CreateModelBuilder(); - + var sproc = modelBuilder.Entity() .UpdateUsingStoredProcedure( s => s.HasRowsAffectedResultColumn()).Metadata.GetUpdateStoredProcedure()!; @@ -266,7 +266,7 @@ public virtual void Conflicting_sproc_rows_affected_parameter_and_result_column_ public virtual void Duplicate_sproc_rows_affected_parameter_throws() { var modelBuilder = CreateModelBuilder(); - + var sproc = modelBuilder.Entity() .UpdateUsingStoredProcedure( s => s.HasRowsAffectedParameter()).Metadata.GetUpdateStoredProcedure()!; @@ -394,7 +394,7 @@ public virtual void Sproc_overrides_update_when_renamed_in_TPH() modelBuilder.Entity() .Ignore(s => s.SpecialBookLabel) .InsertUsingStoredProcedure( - s => s.SuppressTransactions().HasAnnotation("foo", "bar1") + s => s.HasAnnotation("foo", "bar1") .HasParameter(b => b.BookId) .HasParameter("Discriminator") .HasResultColumn( @@ -407,7 +407,7 @@ public virtual void Sproc_overrides_update_when_renamed_in_TPH() .HasResultColumn("RowVersion") .HasRowsAffectedReturnValue()) .UpdateUsingStoredProcedure( - s => s.SuppressTransactions().HasAnnotation("foo", "bar2") + s => s.HasAnnotation("foo", "bar2") .HasParameter( b => b.Id, p => { @@ -420,7 +420,7 @@ public virtual void Sproc_overrides_update_when_renamed_in_TPH() .HasOriginalValueParameter("RowVersion", p => p.HasName("OriginalRowVersion")) .HasParameter("RowVersion", p => p.IsOutput())) .DeleteUsingStoredProcedure( - s => s.SuppressTransactions().HasAnnotation("foo", "bar3") + s => s.HasAnnotation("foo", "bar3") .HasParameter(b => b.Id, p => p.HasName("DeleteId")) .HasRowsAffectedResultColumn() .HasOriginalValueParameter("RowVersion")); @@ -446,7 +446,6 @@ public virtual void Sproc_overrides_update_when_renamed_in_TPH() Assert.Null(insertSproc.FindParameter("Id")); Assert.Null(insertSproc.FindResultColumn("Discriminator")); Assert.False(insertSproc.FindResultColumn("Id")!.ForRowsAffected); - Assert.True(insertSproc.AreTransactionsSuppressed); Assert.True(insertSproc.IsRowsAffectedReturned); Assert.Equal("bar1", insertSproc["foo"]); Assert.Same(bookLabel, insertSproc.EntityType); @@ -456,7 +455,6 @@ public virtual void Sproc_overrides_update_when_renamed_in_TPH() Assert.Equal("dbo", updateSproc.Schema); Assert.Equal(new[] { "Id", "BookId", null, "RowVersion", "RowVersion" }, updateSproc.Parameters.Select(p => p.PropertyName)); Assert.Empty(updateSproc.ResultColumns); - Assert.True(updateSproc.AreTransactionsSuppressed); Assert.Equal("bar2", updateSproc["foo"]); Assert.Same(bookLabel, updateSproc.EntityType); Assert.False(updateSproc.IsRowsAffectedReturned); @@ -484,7 +482,6 @@ public virtual void Sproc_overrides_update_when_renamed_in_TPH() Assert.Equal("mySchema", deleteSproc.Schema); Assert.Equal(new[] { "Id", "RowVersion" }, deleteSproc.Parameters.Select(p => p.PropertyName)); Assert.Equal(new[] { "RowsAffected" }, deleteSproc.ResultColumns.Select(p => p.Name)); - Assert.True(deleteSproc.AreTransactionsSuppressed); Assert.Equal("bar3", deleteSproc["foo"]); Assert.Same(bookLabel, deleteSproc.EntityType); Assert.False(deleteSproc.IsRowsAffectedReturned); @@ -719,11 +716,11 @@ public virtual void Can_use_sproc_mapping_with_owned_reference() lb.Property(l => l.Id).ValueGeneratedOnUpdate(); lb.InsertUsingStoredProcedure( - s => s.SuppressTransactions().HasAnnotation("foo", "bar1") + s => s.HasAnnotation("foo", "bar1") .HasParameter(b => b.Id) .HasParameter(b => b.BookId, p => p.HasName("InsertId"))) .UpdateUsingStoredProcedure( - s => s.SuppressTransactions().HasAnnotation("foo", "bar2") + s => s.HasAnnotation("foo", "bar2") .HasParameter(b => b.Id) .HasParameter(b => b.BookId, p => { @@ -738,8 +735,7 @@ public virtual void Can_use_sproc_mapping_with_owned_reference() Assert.IsAssignableFrom(nonGenericBuilder.Instance.GetInfrastructure()); })) .DeleteUsingStoredProcedure( - s => s.SuppressTransactions().HasAnnotation("foo", "bar3") - .HasParameter(b => b.BookId, p => p.HasName("DeleteId"))); + s => s.HasAnnotation("foo", "bar3").HasParameter(b => b.BookId, p => p.HasName("DeleteId"))); }); modelBuilder.Entity() .OwnsOne(b => b.AlternateLabel); @@ -767,7 +763,6 @@ public virtual void Can_use_sproc_mapping_with_owned_reference() Assert.Null(insertSproc.Schema); Assert.Equal(new[] { "Id", "BookId" }, insertSproc.Parameters.Select(p => p.PropertyName)); Assert.Empty(insertSproc.ResultColumns); - Assert.True(insertSproc.AreTransactionsSuppressed); Assert.Equal("bar1", insertSproc["foo"]); Assert.Same(bookOwnership1.DeclaringEntityType, insertSproc.EntityType); @@ -776,7 +771,6 @@ public virtual void Can_use_sproc_mapping_with_owned_reference() Assert.Equal("dbo", updateSproc.Schema); Assert.Equal(new[] { "Id", "BookId" }, updateSproc.Parameters.Select(p => p.PropertyName)); Assert.Equal(new[] { "Id" }, updateSproc.ResultColumns.Select(p => p.Name)); - Assert.True(updateSproc.AreTransactionsSuppressed); Assert.Equal("bar2", updateSproc["foo"]); Assert.Same(bookOwnership1.DeclaringEntityType, updateSproc.EntityType); @@ -785,7 +779,6 @@ public virtual void Can_use_sproc_mapping_with_owned_reference() Assert.Null(deleteSproc.Schema); Assert.Equal(new[] { "BookId" }, deleteSproc.Parameters.Select(p => p.PropertyName)); Assert.Empty(deleteSproc.ResultColumns); - Assert.True(deleteSproc.AreTransactionsSuppressed); Assert.Equal("bar3", deleteSproc["foo"]); Assert.Same(bookOwnership1.DeclaringEntityType, deleteSproc.EntityType); @@ -800,7 +793,7 @@ public virtual void Can_use_sproc_mapping_with_owned_reference() Assert.Equal( "BookId", bookId.GetColumnName(StoreObjectIdentifier.Create(bookOwnership1.DeclaringEntityType, StoreObjectType.DeleteStoredProcedure)!.Value)); - + Assert.Null(bookOwnership2.DeclaringEntityType.GetInsertStoredProcedure()); Assert.Null(bookOwnership2.DeclaringEntityType.GetUpdateStoredProcedure()); Assert.Null(bookOwnership2.DeclaringEntityType.GetDeleteStoredProcedure()); @@ -918,7 +911,7 @@ public override TestTableBuilder ExcludeFromMigrations(bool excluded = public override TestCheckConstraintBuilder HasCheckConstraint(string name, string? sql) => new(TableBuilder.HasCheckConstraint(name, sql)); - + public override TestTriggerBuilder HasTrigger(string name) => new NonGenericTestTriggerBuilder(TableBuilder.HasTrigger(name)); @@ -976,11 +969,11 @@ public abstract class TestOwnedNavigationTableBuilder ExcludeFromMigrations(bool excluded = true); - + public abstract TestCheckConstraintBuilder HasCheckConstraint( string name, string? sql); - + public abstract TestColumnBuilder Property(string propertyName); public abstract TestColumnBuilder Property(Expression> propertyExpression); @@ -1253,7 +1246,7 @@ public override TestColumnBuilder Property(string property public override TestColumnBuilder Property(Expression> propertyExpression) => new GenericTestColumnBuilder(TableBuilder.Property(propertyExpression.GetPropertyAccess().Name)); - + public override TestOwnedNavigationSplitTableBuilder HasAnnotation(string annotation, object? value) => Wrap(TableBuilder.HasAnnotation(annotation, value)); } @@ -1261,7 +1254,7 @@ public override TestOwnedNavigationSplitTableBuilder { public abstract TestColumnBuilder HasColumnName(string? name); - + public abstract TestColumnBuilder HasAnnotation( string annotation, object? value); @@ -1284,7 +1277,7 @@ protected virtual TestColumnBuilder Wrap(ColumnBuilder col public override TestColumnBuilder HasColumnName(string? name) => Wrap(ColumnBuilder.HasColumnName(name)); - + public override TestColumnBuilder HasAnnotation( string annotation, object? value) @@ -1559,7 +1552,7 @@ public abstract class TestOwnedNavigationSplitViewBuilder Property( Expression> propertyExpression); - + public abstract TestOwnedNavigationSplitViewBuilder HasAnnotation( string annotation, object? value); @@ -1723,7 +1716,7 @@ public abstract TestStoredProcedureBuilder HasParameter> propertyExpression, Action buildAction) where TDerivedEntity : class, TEntity; - + public abstract TestStoredProcedureBuilder HasOriginalValueParameter( string propertyName); @@ -1782,8 +1775,6 @@ public abstract TestStoredProcedureBuilder HasRowsAffectedResultColumn( public abstract TestStoredProcedureBuilder HasRowsAffectedReturnValue(bool rowsAffectedReturned = true); - public abstract TestStoredProcedureBuilder SuppressTransactions(bool suppress = true); - public abstract TestStoredProcedureBuilder HasAnnotation(string annotation, object? value); } @@ -1830,7 +1821,7 @@ public override TestStoredProcedureBuilder HasParameter> propertyExpression, Action buildAction) => Wrap(StoredProcedureBuilder.HasParameter(propertyExpression, s => buildAction(new(s)))); - + public override TestStoredProcedureBuilder HasOriginalValueParameter( string propertyName) => Wrap(StoredProcedureBuilder.HasOriginalValueParameter(propertyName)); @@ -1902,9 +1893,6 @@ public override TestStoredProcedureBuilder HasRowsAffectedResultColumn( public override TestStoredProcedureBuilder HasRowsAffectedReturnValue(bool rowsAffectedReturned) => Wrap(StoredProcedureBuilder.HasRowsAffectedReturnValue(rowsAffectedReturned)); - public override TestStoredProcedureBuilder SuppressTransactions(bool suppress) - => Wrap(StoredProcedureBuilder.SuppressTransactions(suppress)); - public override TestStoredProcedureBuilder HasAnnotation(string annotation, object? value) => Wrap(StoredProcedureBuilder.HasAnnotation(annotation, value)); } @@ -2036,9 +2024,6 @@ public override TestStoredProcedureBuilder HasRowsAffectedResultColumn( public override TestStoredProcedureBuilder HasRowsAffectedReturnValue(bool rowsAffectedReturned) => Wrap(StoredProcedureBuilder.HasRowsAffectedReturnValue(rowsAffectedReturned)); - public override TestStoredProcedureBuilder SuppressTransactions(bool suppress) - => Wrap(StoredProcedureBuilder.SuppressTransactions(suppress)); - public override TestStoredProcedureBuilder HasAnnotation(string annotation, object? value) => Wrap(StoredProcedureBuilder.HasAnnotation(annotation, value)); } @@ -2060,7 +2045,7 @@ public abstract TestOwnedNavigationStoredProcedureBuilder HasParameter( Expression> propertyExpression, Action buildAction); - + public abstract TestOwnedNavigationStoredProcedureBuilder HasOriginalValueParameter( string propertyName); @@ -2074,7 +2059,7 @@ public abstract TestOwnedNavigationStoredProcedureBuilder HasOriginalValueParameter( Expression> propertyExpression, Action buildAction); - + public abstract TestOwnedNavigationStoredProcedureBuilder HasRowsAffectedParameter(); public abstract TestOwnedNavigationStoredProcedureBuilder HasRowsAffectedParameter( @@ -2098,12 +2083,9 @@ public abstract TestOwnedNavigationStoredProcedureBuilder HasRowsAffectedResultColumn( Action buildAction); - + public abstract TestOwnedNavigationStoredProcedureBuilder HasRowsAffectedReturnValue(bool rowsAffectedReturned = true); - - public abstract TestOwnedNavigationStoredProcedureBuilder - SuppressTransactions(bool suppress = true); public abstract TestOwnedNavigationStoredProcedureBuilder HasAnnotation( string annotation, @@ -2149,7 +2131,7 @@ public override TestOwnedNavigationStoredProcedureBuilder> propertyExpression, Action buildAction) => Wrap(StoredProcedureBuilder.HasParameter(propertyExpression, s => buildAction(new(s)))); - + public override TestOwnedNavigationStoredProcedureBuilder HasOriginalValueParameter( string propertyName) => Wrap(StoredProcedureBuilder.HasOriginalValueParameter(propertyName)); @@ -2167,14 +2149,14 @@ public override TestOwnedNavigationStoredProcedureBuilder> propertyExpression, Action buildAction) => Wrap(StoredProcedureBuilder.HasOriginalValueParameter(propertyExpression, s => buildAction(new(s)))); - + public override TestOwnedNavigationStoredProcedureBuilder HasRowsAffectedParameter() => Wrap(StoredProcedureBuilder.HasRowsAffectedParameter()); public override TestOwnedNavigationStoredProcedureBuilder HasRowsAffectedParameter( Action buildAction) => Wrap(StoredProcedureBuilder.HasRowsAffectedParameter(s => buildAction(new(s)))); - + public override TestOwnedNavigationStoredProcedureBuilder HasResultColumn( string propertyName) => Wrap(StoredProcedureBuilder.HasResultColumn(propertyName)); @@ -2192,7 +2174,7 @@ public override TestOwnedNavigationStoredProcedureBuilder> propertyExpression, Action buildAction) => Wrap(StoredProcedureBuilder.HasResultColumn(propertyExpression, s => buildAction(new(s)))); - + public override TestOwnedNavigationStoredProcedureBuilder HasRowsAffectedResultColumn() => Wrap(StoredProcedureBuilder.HasRowsAffectedResultColumn()); @@ -2203,9 +2185,6 @@ public override TestOwnedNavigationStoredProcedureBuilder HasRowsAffectedReturnValue(bool rowsAffectedReturned) => Wrap(StoredProcedureBuilder.HasRowsAffectedReturnValue(rowsAffectedReturned)); - public override TestOwnedNavigationStoredProcedureBuilder SuppressTransactions(bool suppress) - => Wrap(StoredProcedureBuilder.SuppressTransactions(suppress)); - public override TestOwnedNavigationStoredProcedureBuilder HasAnnotation( string annotation, object? value) @@ -2251,7 +2230,7 @@ public override TestOwnedNavigationStoredProcedureBuilder Wrap( StoredProcedureBuilder.HasParameter( propertyExpression.GetMemberAccess().Name, s => buildAction(new(s)))); - + public override TestOwnedNavigationStoredProcedureBuilder HasOriginalValueParameter( string propertyName) => Wrap(StoredProcedureBuilder.HasOriginalValueParameter(propertyName)); @@ -2271,7 +2250,7 @@ public override TestOwnedNavigationStoredProcedureBuilder Wrap( StoredProcedureBuilder.HasOriginalValueParameter( propertyExpression.GetMemberAccess().Name, s => buildAction(new(s)))); - + public override TestOwnedNavigationStoredProcedureBuilder HasRowsAffectedParameter() => Wrap(StoredProcedureBuilder.HasRowsAffectedParameter()); @@ -2298,7 +2277,7 @@ public override TestOwnedNavigationStoredProcedureBuilder Wrap( StoredProcedureBuilder.HasResultColumn( propertyExpression.GetMemberAccess().Name, s => buildAction(new(s)))); - + public override TestOwnedNavigationStoredProcedureBuilder HasRowsAffectedResultColumn() => Wrap(StoredProcedureBuilder.HasRowsAffectedResultColumn()); @@ -2309,9 +2288,6 @@ public override TestOwnedNavigationStoredProcedureBuilder HasRowsAffectedReturnValue(bool rowsAffectedReturned) => Wrap(StoredProcedureBuilder.HasRowsAffectedReturnValue(rowsAffectedReturned)); - public override TestOwnedNavigationStoredProcedureBuilder SuppressTransactions(bool suppress) - => Wrap(StoredProcedureBuilder.SuppressTransactions(suppress)); - public override TestOwnedNavigationStoredProcedureBuilder HasAnnotation( string annotation, object? value) @@ -2341,7 +2317,7 @@ public virtual TestStoredProcedureParameterBuilder IsOutput() public virtual TestStoredProcedureParameterBuilder IsInputOutput() => Wrap(StoredProcedureParameterBuilder.IsInputOutput()); - + public virtual TestStoredProcedureParameterBuilder HasAnnotation( string annotation, object? value)