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

Commit 3a8f8f9

Browse files
committed
Add GetTableName<T> API for easier access
1 parent a245a40 commit 3a8f8f9

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

src/ServiceStack.OrmLite/IOrmLiteDialectProvider.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,10 @@ public interface IOrmLiteDialectProvider
7575

7676
IDbConnection CreateConnection(string filePath, Dictionary<string, string> options);
7777

78+
string GetTableName(ModelDefinition modelDef);
79+
80+
string GetTableName(string tableName, string schema = null);
81+
7882
string GetQuotedTableName(ModelDefinition modelDef);
7983

8084
string GetQuotedTableName(string tableName, string schema=null);

src/ServiceStack.OrmLite/OrmLiteReadExpressionsApi.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,16 @@ public static JoinFormatDelegate JoinAlias(this IDbConnection dbConn, string ali
7676
$"{dialect.GetQuotedTableName(tableDef)} {alias} {expr.Replace(dialect.GetQuotedTableName(tableDef), dialect.GetQuotedTableName(alias))}";
7777
}
7878

79+
public static string GetTableName<T>(this IDbConnection db)
80+
{
81+
return db.GetDialectProvider().GetTableName(ModelDefinition<T>.Definition);
82+
}
83+
84+
public static string GetQuotedTableName<T>(this IDbConnection db)
85+
{
86+
return db.GetDialectProvider().GetQuotedTableName(ModelDefinition<T>.Definition);
87+
}
88+
7989
/// <summary>
8090
/// Open a Transaction in OrmLite
8191
/// </summary>
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
using NUnit.Framework;
2+
using ServiceStack.OrmLite.Tests.Issues;
3+
using ServiceStack.OrmLite.Tests.Shared;
4+
5+
namespace ServiceStack.OrmLite.Tests
6+
{
7+
[TestFixture]
8+
public class DbExtensionTests : OrmLiteTestBase
9+
{
10+
[Test]
11+
public void Can_get_TableName()
12+
{
13+
using (var db = OpenDbConnection())
14+
{
15+
var table1 = db.GetTableName<Table1>();
16+
var quotedTable1 = db.GetQuotedTableName<Table1>();
17+
18+
Assert.That(table1, Is.EqualTo("Table1"));
19+
Assert.That(quotedTable1, Is.EqualTo("\"Table1\""));
20+
21+
if (Dialect == Dialect.Sqlite)
22+
{
23+
var tableSchema = db.GetTableName<ModelWithSchema>();
24+
var quotedTableSchema = db.GetQuotedTableName<ModelWithSchema>();
25+
26+
Assert.That(tableSchema, Is.EqualTo("Schema_ModelWithSchema"));
27+
Assert.That(quotedTableSchema, Is.EqualTo("\"Schema_ModelWithSchema\""));
28+
}
29+
}
30+
}
31+
}
32+
}

0 commit comments

Comments
 (0)