Repository: microsoft/kiota (csharp)

Issue:
Make the model classes partial in C#
### Is your feature request related to a problem? Please describe the problem.

In other code generators (_did anyone say NSwag?_) , the generated model classes are partial. This can be very handy to add some computed properties as part of the API, without forcing users to define wrapper classes.
It may not be applicable to other languages not having the partial class concept, but it surely would help those who use C#.

### Client library/SDK language

Csharp

### Describe the solution you'd like

generate `public partial class` instead of `public class` when generating model code.

### Additional context

_No response_

Pull request description:
fixes #4894
related #4242

Patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5876f44c57..a579967daa 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ## [Unreleased]
 
+### Changed
+- Implemented partial class model declarations. [4894](https://github.com/microsoft/kiota/issues/4894)
+
 ### Added
 
 ### Changed
diff --git a/src/Kiota.Builder/Writers/CSharp/CodeClassDeclarationWriter.cs b/src/Kiota.Builder/Writers/CSharp/CodeClassDeclarationWriter.cs
index c6aa150712..040381a0fb 100644
--- a/src/Kiota.Builder/Writers/CSharp/CodeClassDeclarationWriter.cs
+++ b/src/Kiota.Builder/Writers/CSharp/CodeClassDeclarationWriter.cs
@@ -38,7 +38,7 @@ public override void WriteCodeElement(ClassDeclaration codeElement, LanguageWrit
         bool hasDescription = conventions.WriteLongDescription(parentClass, writer);
         conventions.WriteDeprecationAttribute(parentClass, writer);
         if (!hasDescription) writer.WriteLine("#pragma warning disable CS1591");
-        writer.WriteLine($"public class {codeElement.Name.ToFirstCharacterUpperCase()} {derivation}");
+        writer.WriteLine($"public partial class {codeElement.Name.ToFirstCharacterUpperCase()} {derivation}");
         if (!hasDescription) writer.WriteLine("#pragma warning restore CS1591");
         writer.StartBlock();
     }


Test patch:
diff --git a/tests/Kiota.Builder.Tests/Writers/CSharp/CodeClassDeclarationWriterTests.cs b/tests/Kiota.Builder.Tests/Writers/CSharp/CodeClassDeclarationWriterTests.cs
index 80bbe163f9..d9100b9886 100644
--- a/tests/Kiota.Builder.Tests/Writers/CSharp/CodeClassDeclarationWriterTests.cs
+++ b/tests/Kiota.Builder.Tests/Writers/CSharp/CodeClassDeclarationWriterTests.cs
@@ -51,7 +51,7 @@ public void WritesSimpleDeclaration()
     {
         codeElementWriter.WriteCodeElement(parentClass.StartBlock, writer);
         var result = tw.ToString();
-        Assert.Contains("public class", result);
+        Assert.Contains("public partial class", result);
     }
 
     [Fact]