From 8cd5fbd1099b6dab4b1b8df2c1cad967b4127652 Mon Sep 17 00:00:00 2001 From: Alex Zaytsev Date: Thu, 31 Jul 2025 15:46:10 +1000 Subject: [PATCH] Mark Sql* methods on components as obsolete & hide from editor Fixes #119 --- src/FluentNHibernate/Mapping/ClasslikeMapBase.cs | 8 ++++---- src/FluentNHibernate/Mapping/ComponentPartBase.cs | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/FluentNHibernate/Mapping/ClasslikeMapBase.cs b/src/FluentNHibernate/Mapping/ClasslikeMapBase.cs index 812016fa7..d0bde93e8 100644 --- a/src/FluentNHibernate/Mapping/ClasslikeMapBase.cs +++ b/src/FluentNHibernate/Mapping/ClasslikeMapBase.cs @@ -401,7 +401,7 @@ public ManyToManyPart HasManyToMany(Expression> /// Specify an insert stored procedure /// /// Stored procedure call - public StoredProcedurePart SqlInsert(string innerText) + public virtual StoredProcedurePart SqlInsert(string innerText) { return StoredProcedure("sql-insert", innerText); } @@ -410,7 +410,7 @@ public StoredProcedurePart SqlInsert(string innerText) /// Specify an update stored procedure /// /// Stored procedure call - public StoredProcedurePart SqlUpdate(string innerText) + public virtual StoredProcedurePart SqlUpdate(string innerText) { return StoredProcedure("sql-update", innerText); } @@ -419,7 +419,7 @@ public StoredProcedurePart SqlUpdate(string innerText) /// Specify an delete stored procedure /// /// Stored procedure call - public StoredProcedurePart SqlDelete(string innerText) + public virtual StoredProcedurePart SqlDelete(string innerText) { return StoredProcedure("sql-delete", innerText); } @@ -428,7 +428,7 @@ public StoredProcedurePart SqlDelete(string innerText) /// Specify an delete all stored procedure /// /// Stored procedure call - public StoredProcedurePart SqlDeleteAll(string innerText) + public virtual StoredProcedurePart SqlDeleteAll(string innerText) { return StoredProcedure("sql-delete-all", innerText); } diff --git a/src/FluentNHibernate/Mapping/ComponentPartBase.cs b/src/FluentNHibernate/Mapping/ComponentPartBase.cs index 5ece64ee6..53a3303f9 100644 --- a/src/FluentNHibernate/Mapping/ComponentPartBase.cs +++ b/src/FluentNHibernate/Mapping/ComponentPartBase.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel; using System.Diagnostics; using System.Linq.Expressions; using FluentNHibernate.MappingModel; @@ -189,4 +190,18 @@ protected ComponentMapping CreateComponentMapping() return mapping; } + +#pragma warning disable CS0809 // Obsolete member overrides non-obsolete member + [Obsolete("SqlInsert is not supported on components"), EditorBrowsable(EditorBrowsableState.Never)] + public override StoredProcedurePart SqlInsert(string innerText) => base.SqlInsert(innerText); + + [Obsolete("SqlUpdate is not supported on components"), EditorBrowsable(EditorBrowsableState.Never)] + public override StoredProcedurePart SqlUpdate(string innerText) => base.SqlUpdate(innerText); + + [Obsolete("SqlDelete is not supported on components"), EditorBrowsable(EditorBrowsableState.Never)] + public override StoredProcedurePart SqlDelete(string innerText) => base.SqlDelete(innerText); + + [Obsolete("SqlDeleteAll is not supported on components"), EditorBrowsable(EditorBrowsableState.Never)] + public override StoredProcedurePart SqlDeleteAll(string innerText) => base.SqlDeleteAll(innerText); +#pragma warning restore CS0809 // Obsolete member overrides non-obsolete member }