From c0584f57a530b177f9b5f3921107484cdce00cab Mon Sep 17 00:00:00 2001 From: Renaud Paquay Date: Tue, 13 Jul 2010 15:13:25 -0700 Subject: [PATCH] Swtich to SqlCe provider for local database --HG-- branch : dev --- .../Settings/DataMigrations/SettingsDataMigration.cs | 2 +- .../Core/Settings/State/Records/ShellStateRecord.cs | 12 ++++++++++-- .../Orchard.Setup/Controllers/SetupController.cs | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Orchard.Web/Core/Settings/DataMigrations/SettingsDataMigration.cs b/src/Orchard.Web/Core/Settings/DataMigrations/SettingsDataMigration.cs index 349300b43..d8983dac4 100644 --- a/src/Orchard.Web/Core/Settings/DataMigrations/SettingsDataMigration.cs +++ b/src/Orchard.Web/Core/Settings/DataMigrations/SettingsDataMigration.cs @@ -77,7 +77,7 @@ namespace Orchard.Core.Settings.DataMigrations { //CREATE TABLE Settings_ShellStateRecord (Id integer, primary key (Id)); SchemaBuilder.CreateTable("ShellStateRecord", table => table .Column("Id", column => column.PrimaryKey().Identity()) - .Column("Name") + .Column("Unused") ); //CREATE TABLE Settings_SiteSettingsRecord (Id INTEGER not null, SiteSalt TEXT, SiteName TEXT, SuperUser TEXT, PageTitleSeparator TEXT, HomePage TEXT, SiteCulture TEXT, primary key (Id)); diff --git a/src/Orchard.Web/Core/Settings/State/Records/ShellStateRecord.cs b/src/Orchard.Web/Core/Settings/State/Records/ShellStateRecord.cs index ef246cd6e..5860b8d8e 100644 --- a/src/Orchard.Web/Core/Settings/State/Records/ShellStateRecord.cs +++ b/src/Orchard.Web/Core/Settings/State/Records/ShellStateRecord.cs @@ -4,10 +4,18 @@ using Orchard.Data.Conventions; namespace Orchard.Core.Settings.State.Records { public class ShellStateRecord { public ShellStateRecord() { - Features = new List(); } + Features = new List(); + } public virtual int Id { get; set; } - + + /// + /// Workaround SqlCe: There is apparently no way to insert a row in a table with a single column IDENTITY ID primary key. + /// See: http://www.sqldev.org/transactsql/insert-only-identity-column-value-in-sql-compact-edition-95267.shtml + /// So we added this "Unused" column. + /// + public virtual string Unused { get; set; } + [CascadeAllDeleteOrphan] public virtual IList Features { get; set; } } diff --git a/src/Orchard.Web/Modules/Orchard.Setup/Controllers/SetupController.cs b/src/Orchard.Web/Modules/Orchard.Setup/Controllers/SetupController.cs index c5af9b15b..e901b031a 100644 --- a/src/Orchard.Web/Modules/Orchard.Setup/Controllers/SetupController.cs +++ b/src/Orchard.Web/Modules/Orchard.Setup/Controllers/SetupController.cs @@ -59,7 +59,7 @@ namespace Orchard.Setup.Controllers { SiteName = model.SiteName, AdminUsername = model.AdminUsername, AdminPassword = model.AdminPassword, - DatabaseProvider = model.DatabaseOptions ? "SQLite" : "SqlServer", + DatabaseProvider = model.DatabaseOptions ? "SqlCe" : "SqlServer", DatabaseConnectionString = model.DatabaseConnectionString, DatabaseTablePrefix = model.DatabaseTablePrefix, EnabledFeatures = null // default list