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

Commit 6ea5fae

Browse files
committed
Last commit didn't include everything
1 parent 7b9443c commit 6ea5fae

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

src/ServiceStack.OrmLite.SqlServer/SqlServer2014OrmLiteDialectProvider.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ namespace ServiceStack.OrmLite.SqlServer
88
{
99
public class SqlServer2014OrmLiteDialectProvider : SqlServer2012OrmLiteDialectProvider
1010
{
11+
public static new SqlServer2014OrmLiteDialectProvider Instance = new SqlServer2014OrmLiteDialectProvider();
1112

1213
public override string ToCreateTableStatement(Type tableType)
1314
{
@@ -53,8 +54,10 @@ public override string ToCreateTableStatement(Type tableType)
5354
sbConstraints.Append(GetForeignKeyOnUpdateClause(fieldDef.ForeignKey));
5455
}
5556

57+
if (tableType.HasAttribute<MemoryOptimizedAttribute>())
5658
{
5759
sbMemOptimized.Append(" WITH (MEMORY_OPTIMIZED=ON");
60+
var attrib = tableType.FirstAttribute<MemoryOptimizedAttribute>();
5861
if (attrib.Durability == TableDurability.SCHEMA_ONLY)
5962
sbMemOptimized.Append(", DURABILITY=SCHEMA_ONLY");
6063
else if (attrib.Durability == TableDurability.SCHEMA_AND_DATA)
@@ -74,8 +77,11 @@ namespace ServiceStack.DataAnnotations
7477
{
7578
// SQL 2014: https://msdn.microsoft.com/en-us/library/dn553122(v=sql.120).aspx
7679
// SQL 2016: https://msdn.microsoft.com/en-us/library/dn553122(v=sql.130).aspx
80+
public class MemoryOptimizedAttribute : Attribute
7781
{
82+
public MemoryOptimizedAttribute() { }
7883

84+
public MemoryOptimizedAttribute(TableDurability durability) { Durability = durability; }
7985

8086
public TableDurability? Durability { get; set; }
8187
}
@@ -85,4 +91,4 @@ public enum TableDurability
8591
SCHEMA_ONLY, // (non-durable table) recreated upon server restart, data is lost, no transaction logging and checkpoints
8692
SCHEMA_AND_DATA // (durable table) data persists upon server restart
8793
}
88-
}
94+
}

src/ServiceStack.OrmLite.SqlServer/SqlServer2016OrmLiteDialectProvider.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@ namespace ServiceStack.OrmLite.SqlServer
77
{
88
public class SqlServer2016OrmLiteDialectProvider : SqlServer2014OrmLiteDialectProvider
99
{
10+
public static new SqlServer2016OrmLiteDialectProvider Instance = new SqlServer2016OrmLiteDialectProvider();
1011
}
11-
}
12+
}

src/ServiceStack.OrmLite.SqlServerTests/MemoryOptimizedAttributeTests.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
namespace ServiceStack.OrmLite.SqlServerTests
55
{
66
[TestFixture]
7+
public class MemoryOptimizedAttributeTests : OrmLiteTestBase
78
{
89
[TestFixtureSetUp]
910
public void Setup()
@@ -46,6 +47,7 @@ public void CanCreateMemoryOptimizedTableWithSchemaAndDurability()
4647
}
4748
}
4849

50+
[MemoryOptimized]
4951
public class TypeWithMemTableNoDurability
5052
{
5153
[AutoIncrement]
@@ -54,6 +56,7 @@ public class TypeWithMemTableNoDurability
5456
public string Name { get; set; }
5557
}
5658

59+
[MemoryOptimized(TableDurability.SCHEMA_ONLY)]
5760
public class TypeWithMemTableSchemaOnlyDurability
5861
{
5962
[AutoIncrement]
@@ -62,11 +65,12 @@ public class TypeWithMemTableSchemaOnlyDurability
6265
public string Name { get; set; }
6366
}
6467

68+
[MemoryOptimized(TableDurability.SCHEMA_AND_DATA)]
6569
public class TypeWithMemTableSchemaAndDataDurability
6670
{
6771
[AutoIncrement]
6872
public int Id { get; set; }
6973

7074
public string Name { get; set; }
7175
}
72-
}
76+
}

0 commit comments

Comments
 (0)