diff options
Diffstat (limited to 'ComicRackWebViewer/LinqToDB.Templates/LinqToDB.SQLite.ttinclude')
-rw-r--r-- | ComicRackWebViewer/LinqToDB.Templates/LinqToDB.SQLite.ttinclude | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/ComicRackWebViewer/LinqToDB.Templates/LinqToDB.SQLite.ttinclude b/ComicRackWebViewer/LinqToDB.Templates/LinqToDB.SQLite.ttinclude new file mode 100644 index 0000000..3c2703e --- /dev/null +++ b/ComicRackWebViewer/LinqToDB.Templates/LinqToDB.SQLite.ttinclude @@ -0,0 +1,44 @@ +<#@ include file="LinqToDB.ttinclude" #> +<# + LinqToDB.DataProvider.SQLite.SQLiteTools.ResolveSQLite(typeof(System.Data.SQLite.SQLiteConnection).Assembly); + + { + var beforeGenerateLinqToDBModel = BeforeGenerateLinqToDBModel; + BeforeGenerateLinqToDBModel = () => + { + ConvertSQLiteMetadata(); + beforeGenerateLinqToDBModel(); + }; + } +#> +<#+ +void ConvertSQLiteMetadata() +{ + foreach (var t in Tables.Values) + foreach (var fk in t.ForeignKeys.Values) + if (fk.MemberName.Length == 0 || char.IsDigit(fk.MemberName[0])) + fk.MemberName = "FK_" + fk.MemberName; +} + +LinqToDB.Data.DataConnection GetSQLiteConnection(string connectionString) +{ + return LinqToDB.DataProvider.SQLite.SQLiteTools.CreateDataConnection(connectionString); +} + +LinqToDB.Data.DataConnection GetSQLiteConnection(string path, string database) +{ + return GetSQLiteConnection(string.Format("Data Source={0}", System.IO.Path.Combine(path, database))); +} + +void LoadSQLiteMetadata(string connectionString) +{ + var dataConnection = GetSQLiteConnection(connectionString); + LoadMetadata(dataConnection); +} + +void LoadSQLiteMetadata(string path, string database) +{ + var dataConnection = GetSQLiteConnection(path, database); + LoadMetadata(dataConnection); +} +#> |