Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

Commit 9373ef2

Browse files
committed
Use EnumConverter definition for creating enum properties
1 parent fd8cc1d commit 9373ef2

File tree

3 files changed

+27
-2
lines changed

3 files changed

+27
-2
lines changed

src/ServiceStack.OrmLite/OrmLiteDialectProviderBase.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,10 @@ public string GetColumnTypeDefinition(Type columnType, int? fieldLength, int? sc
142142
}
143143

144144
var stringConverter = columnType.IsRefType()
145-
? (IHasColumnDefinitionLength)ReferenceTypeConverter
146-
: ValueTypeConverter;
145+
? ReferenceTypeConverter
146+
: columnType.IsEnum()
147+
? EnumConverter
148+
: (IHasColumnDefinitionLength)ValueTypeConverter;
147149

148150
return stringConverter.GetColumnDefinition(fieldLength);
149151
}

tests/ServiceStack.OrmLite.Tests/OrmLiteCreateTableWithIndexesTests.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using NUnit.Framework;
22
using ServiceStack.Text;
33
using ServiceStack.Common.Tests.Models;
4+
using ServiceStack.Logging;
45

56
namespace ServiceStack.OrmLite.Tests
67
{
@@ -123,5 +124,13 @@ public void Can_create_ModelWithNamedCompositeIndex_table()
123124
}
124125
}
125126

127+
[Test]
128+
public void Can_create_CompositeIndex_with_Enum()
129+
{
130+
using (var db = OpenDbConnection())
131+
{
132+
db.DropAndCreateTable<ModelWithEnum>();
133+
}
134+
}
126135
}
127136
}

tests/ServiceStack.OrmLite.Tests/Shared/ModelWithCompositeIndexFields.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,18 @@ public class ModelWithCompositeIndexOnFieldSpacesDesc
4949
[Alias("Field WithSpace2")]
5050
public string FieldWithSpace2 { get; set; }
5151
}
52+
53+
[CompositeIndex(true, nameof(UserId), nameof(UserRole))]
54+
public class ModelWithEnum
55+
{
56+
public long Id { get; set; }
57+
public long UserId { get; set; }
58+
public UserRoleEnum UserRole { get; set; }
59+
}
60+
61+
public enum UserRoleEnum
62+
{
63+
User,
64+
Admin
65+
}
5266
}

0 commit comments

Comments
 (0)