From 48c7c0ce951d6f25c418095c8519848672ea7ca3 Mon Sep 17 00:00:00 2001 From: Andriy Svyryd Date: Fri, 9 Dec 2022 16:43:36 -0800 Subject: [PATCH] Allow underscores in identifiers again Fixes #29450 --- .../Design/Internal/CSharpHelper.cs | 5 +++-- .../CSharpRuntimeModelCodeGeneratorTest.cs | 16 ++++++++-------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/EFCore.Design/Design/Internal/CSharpHelper.cs b/src/EFCore.Design/Design/Internal/CSharpHelper.cs index 3a70b1cf5b0..de144b5d0de 100644 --- a/src/EFCore.Design/Design/Internal/CSharpHelper.cs +++ b/src/EFCore.Design/Design/Internal/CSharpHelper.cs @@ -1455,10 +1455,11 @@ private static bool IsIdentifierPartCharacter(char ch) { if (ch < 'a') { - return ch < 'A' + return (ch < 'A' ? ch >= '0' && ch <= '9' - : ch <= 'Z'; + : ch <= 'Z') + || ch == '_'; } if (ch <= 'z') diff --git a/test/EFCore.Design.Tests/Scaffolding/Internal/CSharpRuntimeModelCodeGeneratorTest.cs b/test/EFCore.Design.Tests/Scaffolding/Internal/CSharpRuntimeModelCodeGeneratorTest.cs index a6f25ac4bea..eebaa846357 100644 --- a/test/EFCore.Design.Tests/Scaffolding/Internal/CSharpRuntimeModelCodeGeneratorTest.cs +++ b/test/EFCore.Design.Tests/Scaffolding/Internal/CSharpRuntimeModelCodeGeneratorTest.cs @@ -2520,12 +2520,12 @@ public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType? ba afterSaveBehavior: PropertySaveBehavior.Throw); var overrides = new StoreObjectDictionary(); - var idDerivedInsert = new RuntimeRelationalPropertyOverrides( + var idDerived_Insert = new RuntimeRelationalPropertyOverrides( id, StoreObjectIdentifier.InsertStoredProcedure(""Derived_Insert"", ""TPC""), true, ""DerivedId""); - overrides.Add(StoreObjectIdentifier.InsertStoredProcedure(""Derived_Insert"", ""TPC""), idDerivedInsert); + overrides.Add(StoreObjectIdentifier.InsertStoredProcedure(""Derived_Insert"", ""TPC""), idDerived_Insert); var idPrincipalBaseView = new RuntimeRelationalPropertyOverrides( id, StoreObjectIdentifier.View(""PrincipalBaseView"", ""TPC""), @@ -4579,23 +4579,23 @@ public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType bas nullable: true); blob.AddAnnotation(""Cosmos:PropertyName"", ""JsonBlob""); - var id0 = runtimeEntityType.AddProperty( + var __id = runtimeEntityType.AddProperty( ""__id"", typeof(string), afterSaveBehavior: PropertySaveBehavior.Throw, valueGeneratorFactory: new IdValueGeneratorFactory().Create); - id0.AddAnnotation(""Cosmos:PropertyName"", ""id""); + __id.AddAnnotation(""Cosmos:PropertyName"", ""id""); - var jObject = runtimeEntityType.AddProperty( + var __jObject = runtimeEntityType.AddProperty( ""__jObject"", typeof(JObject), nullable: true, valueGenerated: ValueGenerated.OnAddOrUpdate, beforeSaveBehavior: PropertySaveBehavior.Ignore, afterSaveBehavior: PropertySaveBehavior.Ignore); - jObject.AddAnnotation(""Cosmos:PropertyName"", """"); + __jObject.AddAnnotation(""Cosmos:PropertyName"", """"); - var etag = runtimeEntityType.AddProperty( + var _etag = runtimeEntityType.AddProperty( ""_etag"", typeof(string), nullable: true, @@ -4609,7 +4609,7 @@ public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType bas runtimeEntityType.SetPrimaryKey(key); var key0 = runtimeEntityType.AddKey( - new[] { id0, partitionId }); + new[] { __id, partitionId }); return runtimeEntityType; }