Skip to content

Commit 9e6bebe

Browse files
committed
#91: Renamed TableNameCreator to NameCreator and CreateTableName to EscapeName.
1 parent 61ff207 commit 9e6bebe

File tree

10 files changed

+31
-25
lines changed

10 files changed

+31
-25
lines changed

SQLite.CodeFirst.Test/SQLite.CodeFirst.Test.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@
9090
</Compile>
9191
<Compile Include="IntegrationTests\SqlGenerationTest.cs" />
9292
<Compile Include="UnitTests\Builder\NameCreators\IndexNameCreatorTest.cs" />
93-
<Compile Include="UnitTests\Builder\NameCreators\TableNameCreatorTest.cs" />
93+
<Compile Include="UnitTests\Builder\NameCreators\NameCreatorTest.cs" />
9494
<Compile Include="IntegrationTests\MemoryDbTest.cs" />
9595
<Compile Include="Properties\AssemblyInfo.cs" />
9696
<Compile Include="UnitTests\Statement\ColumnConstraint\MaxLengthConstraint.cs" />

SQLite.CodeFirst.Test/UnitTests/Builder/NameCreators/IndexNameCreatorTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ public class IndexNameCreatorTest
99
[TestMethod]
1010
public void CreateIndexName()
1111
{
12-
string result = IndexNameCreator.CreateIndexName("MyTable", "MyProperty");
12+
string result = IndexNameCreator.CreateName("MyTable", "MyProperty");
1313
Assert.AreEqual("\"IX_MyTable_MyProperty\"", result);
1414
}
1515

1616
[TestMethod]
1717
public void CreateIndexNameEscaped()
1818
{
19-
string result = IndexNameCreator.CreateIndexName("\"base.MyTable\"", "MyProperty");
19+
string result = IndexNameCreator.CreateName("\"base.MyTable\"", "MyProperty");
2020
Assert.AreEqual("\"IX_base.MyTable_MyProperty\"", result);
2121
}
2222
}

SQLite.CodeFirst.Test/UnitTests/Builder/NameCreators/TableNameCreatorTest.cs renamed to SQLite.CodeFirst.Test/UnitTests/Builder/NameCreators/NameCreatorTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
namespace SQLite.CodeFirst.Test.UnitTests.Builder.NameCreators
55
{
66
[TestClass]
7-
public class TableNameCreatorTest
7+
public class NameCreatorTest
88
{
99
[TestMethod]
1010
public void CreateTableNameTest()
1111
{
12-
string result = TableNameCreator.CreateTableName("Test");
12+
string result = NameCreator.EscapeName("Test");
1313
Assert.AreEqual("\"Test\"", result);
1414
}
1515
}

SQLite.CodeFirst/Internal/Builder/CreateIndexStatementBuilder.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public CreateIndexStatementCollection BuildStatement()
2929
.Select(x => x.Value)
3030
.OfType<IndexAnnotation>();
3131

32+
string tableName = NameCreator.EscapeName(entitySet.Table);
3233
foreach (var index in indexAnnotations.SelectMany(ia => ia.Indexes))
3334
{
3435
CreateIndexStatement createIndexStatement;
@@ -39,7 +40,7 @@ public CreateIndexStatementCollection BuildStatement()
3940
{
4041
IsUnique = index.IsUnique,
4142
Name = indexName,
42-
Table = TableNameCreator.CreateTableName(entitySet.Table),
43+
Table = tableName,
4344
Columns = new Collection<CreateIndexStatement.IndexColumn>()
4445
};
4546
createIndexStatments.Add(indexName, createIndexStatement);

SQLite.CodeFirst/Internal/Builder/CreateTableStatementBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public CreateTableStatement BuildStatement()
4141

4242
return new CreateTableStatement
4343
{
44-
TableName = TableNameCreator.CreateTableName(entitySet.Table),
44+
TableName = NameCreator.EscapeName(entitySet.Table),
4545
ColumnStatementCollection = new ColumnStatementCollection(columnStatements)
4646
};
4747
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using System.Globalization;
2+
3+
namespace SQLite.CodeFirst.Builder.NameCreators
4+
{
5+
internal static class NameCreator
6+
{
7+
public static string EscapeName(string name)
8+
{
9+
// Ensure that the name is not already escaped.
10+
name = name.Trim(SpecialChars.EscapeCharOpen, SpecialChars.EscapeCharClose);
11+
12+
// Escape the escape chars, if there are some of them in the name.
13+
name = name.Replace(SpecialChars.EscapeCharOpen.ToString(), SpecialChars.EscapeCharOpen.ToString() + SpecialChars.EscapeCharOpen);
14+
15+
// Escape the name.
16+
return string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}", SpecialChars.EscapeCharOpen, name, SpecialChars.EscapeCharClose);
17+
}
18+
}
19+
}

SQLite.CodeFirst/Internal/Builder/NameCreators/TableNameCreator.cs

Lines changed: 0 additions & 14 deletions
This file was deleted.

SQLite.CodeFirst/Internal/Extensions/EntityTypeExtension.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public static string GetTableName(this EntityType entityType)
2626
// GetValue() overload with one value was introduces in .net 4.5 so use the overload with two parameters.
2727
var name = (string)metadataPropertyValueType.GetProperty("Name").GetValue(metadataPropertyValue, null);
2828

29-
return TableNameCreator.CreateTableName(name);
29+
return NameCreator.EscapeName(name);
3030
}
3131
}
3232
}

SQLite.CodeFirst/Internal/Utility/SqliteAssociationType.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ public SqliteAssociationType(AssociationType associationType, EntityContainer co
2525
toTable = container.GetEntitySetByName(ToRoleEntitySetName, true).Table;
2626
}
2727

28-
FromTableName = TableNameCreator.CreateTableName(fromTable);
29-
ToTableName = TableNameCreator.CreateTableName(toTable);
28+
FromTableName = NameCreator.EscapeName(fromTable);
29+
ToTableName = NameCreator.EscapeName(toTable);
3030
ForeignKey = associationType.Constraint.ToProperties.Select(x => x.Name);
3131
ForeignPrimaryKey = associationType.Constraint.FromProperties.Select(x => x.Name);
3232
CascadeDelete = associationType.Constraint.FromRole.DeleteBehavior == OperationAction.Cascade;

SQLite.CodeFirst/SQLite.CodeFirst.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@
8787
<Compile Include="..\Shared\AssemblySharedInfo.cs">
8888
<Link>Properties\AssemblySharedInfo.cs</Link>
8989
</Compile>
90+
<Compile Include="Internal\Builder\NameCreators\NameCreator.cs" />
9091
<Compile Include="Internal\Utility\InMemoryAwareFile.cs" />
9192
<Compile Include="Internal\Extensions\ListExtensions.cs" />
9293
<Compile Include="Internal\Statement\ColumnConstraint\PrimaryKeyConstraint.cs" />
@@ -141,7 +142,6 @@
141142
<Compile Include="Internal\Statement\CreateTableStatement.cs" />
142143
<Compile Include="Internal\Statement\IStatement.cs" />
143144
<Compile Include="Internal\Builder\CreateTableStatementBuilder.cs" />
144-
<Compile Include="Internal\Builder\NameCreators\TableNameCreator.cs" />
145145
</ItemGroup>
146146
<ItemGroup>
147147
<None Include="packages.config" />

0 commit comments

Comments
 (0)