Skip to content

Commit 3ed76cd

Browse files
committed
Use full name for generic types
1 parent 9e66c43 commit 3ed76cd

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/EntityFrameworkCore.Generator.Core/Extensions/GenerationExtensions.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,10 +190,22 @@ private static void ProcessGenericType(StringBuilder builder, Type type, Type[]
190190
var genericPartIndex = type.Name.IndexOf('`');
191191
if (genericPartIndex <= 0)
192192
{
193-
builder.Append(type.Name);
193+
if (type.Namespace.HasValue() && _defaultNamespaces.Contains(type.Namespace))
194+
{
195+
builder.Append(type.Name);
196+
}
197+
else
198+
{
199+
builder.Append(type.FullName ?? type.Name);
200+
}
194201
return;
195202
}
196203

204+
if (type.Namespace.HasValue() && !_defaultNamespaces.Contains(type.Namespace))
205+
{
206+
builder.Append(type.Namespace);
207+
builder.Append(".");
208+
}
197209
builder.Append(type.Name, 0, genericPartIndex);
198210
builder.Append('<');
199211

test/EntityFrameworkCore.Generator.Core.Tests/CodeGeneratorTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ public void GenerateSpatial()
8080
[InlineData(typeof(List<List<string>>), "List<List<string>>")]
8181
[InlineData(typeof(int[]), "int[]")]
8282
[InlineData(typeof(string[][]), "string[][]")]
83+
[InlineData(typeof(System.Net.IPAddress[]), "System.Net.IPAddress[]")]
84+
[InlineData(typeof(System.ComponentModel.BindingList<int>), "System.ComponentModel.BindingList<int>")]
8385
public void ConvertToTypeString(Type type, string expected)
8486
=> Assert.Equal(expected, type.ToType());
8587
}

0 commit comments

Comments
 (0)