diff --git a/src/Umbraco.Core/Models/Rdbms/AppTreeDto.cs b/src/Umbraco.Core/Models/Rdbms/AppTreeDto.cs
index 1667486ca9..cab38fa201 100644
--- a/src/Umbraco.Core/Models/Rdbms/AppTreeDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/AppTreeDto.cs
@@ -17,7 +17,7 @@ namespace Umbraco.Core.Models.Rdbms
public bool Initialize { get; set; }
[Column("treeSortOrder")]
- public int SortOrder { get; set; }
+ public byte SortOrder { get; set; }
[Column("appAlias")]
[PrimaryKeyColumn(AutoIncrement = false, Clustered = true, Name = "PK_umbracoAppTree", OnColumns = "[appAlias], [treeAlias]")]
diff --git a/src/Umbraco.Core/Models/Rdbms/ContentXmlDto.cs b/src/Umbraco.Core/Models/Rdbms/ContentXmlDto.cs
index 9cb1da238d..44f461135c 100644
--- a/src/Umbraco.Core/Models/Rdbms/ContentXmlDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/ContentXmlDto.cs
@@ -11,7 +11,7 @@ namespace Umbraco.Core.Models.Rdbms
{
[Column("nodeId")]
[PrimaryKeyColumn(AutoIncrement = false)]
- //[ForeignKey(typeof(ContentDto))]
+ [ForeignKey(typeof(ContentDto))]
public int NodeId { get; set; }
[Column("xml")]
diff --git a/src/Umbraco.Core/Models/Rdbms/DataTypeDto.cs b/src/Umbraco.Core/Models/Rdbms/DataTypeDto.cs
index db678dd3a1..66d2f059f2 100644
--- a/src/Umbraco.Core/Models/Rdbms/DataTypeDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/DataTypeDto.cs
@@ -14,6 +14,7 @@ namespace Umbraco.Core.Models.Rdbms
public int PrimaryKey { get; set; }
[Column("nodeId")]
+ [ForeignKey(typeof(NodeDto))]
[Index(IndexTypes.UniqueNonClustered)]
public int DataTypeId { get; set; }
diff --git a/src/Umbraco.Core/Models/Rdbms/DataTypePreValueDto.cs b/src/Umbraco.Core/Models/Rdbms/DataTypePreValueDto.cs
index deb23a00c9..4f19d60abd 100644
--- a/src/Umbraco.Core/Models/Rdbms/DataTypePreValueDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/DataTypePreValueDto.cs
@@ -13,7 +13,7 @@ namespace Umbraco.Core.Models.Rdbms
public int Id { get; set; }
[Column("datatypeNodeId")]
- //[ForeignKey(typeof(DataTypeDto), Column = "nodeId")]
+ [ForeignKey(typeof(DataTypeDto), Column = "nodeId")]
public int DataTypeNodeId { get; set; }
[Column("value")]
diff --git a/src/Umbraco.Core/Models/Rdbms/DocumentDto.cs b/src/Umbraco.Core/Models/Rdbms/DocumentDto.cs
index 4eda74dcc9..59391c6551 100644
--- a/src/Umbraco.Core/Models/Rdbms/DocumentDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/DocumentDto.cs
@@ -42,7 +42,7 @@ namespace Umbraco.Core.Models.Rdbms
[Column("templateId")]
[NullSetting(NullSetting = NullSettings.Null)]
- //[ForeignKey(typeof(TemplateDto))]
+ [ForeignKey(typeof(TemplateDto))]
public int? TemplateId { get; set; }
[Column("alias")]
diff --git a/src/Umbraco.Core/Models/Rdbms/DocumentTypeDto.cs b/src/Umbraco.Core/Models/Rdbms/DocumentTypeDto.cs
index 09f3a03461..7fbf15f00f 100644
--- a/src/Umbraco.Core/Models/Rdbms/DocumentTypeDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/DocumentTypeDto.cs
@@ -10,9 +10,12 @@ namespace Umbraco.Core.Models.Rdbms
{
[Column("contentTypeNodeId")]
[PrimaryKeyColumn(AutoIncrement = false, Name = "PK_cmsDocumentType", OnColumns = "contentTypeNodeId, templateNodeId")]
+ [ForeignKey(typeof(ContentTypeDto), Column = "nodeId")]
+ [ForeignKey(typeof(NodeDto))]
public int ContentTypeNodeId { get; set; }
[Column("templateNodeId")]
+ /*[ForeignKey(typeof(TemplateDto))]*/
public int TemplateNodeId { get; set; }
[Column("IsDefault")]
diff --git a/src/Umbraco.Core/Models/Rdbms/DomainDto.cs b/src/Umbraco.Core/Models/Rdbms/DomainDto.cs
index e462007ca2..bd0bbc859c 100644
--- a/src/Umbraco.Core/Models/Rdbms/DomainDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/DomainDto.cs
@@ -18,6 +18,7 @@ namespace Umbraco.Core.Models.Rdbms
[Column("domainRootStructureID")]
[NullSetting(NullSetting = NullSettings.Null)]
+ [ForeignKey(typeof(NodeDto))]
public int? RootStructureId { get; set; }
[Column("domainName")]
diff --git a/src/Umbraco.Core/Models/Rdbms/MacroPropertyDto.cs b/src/Umbraco.Core/Models/Rdbms/MacroPropertyDto.cs
index 8387da2581..729d0d97f3 100644
--- a/src/Umbraco.Core/Models/Rdbms/MacroPropertyDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/MacroPropertyDto.cs
@@ -21,6 +21,7 @@ namespace Umbraco.Core.Models.Rdbms
public short Type { get; set; }
[Column("macro")]
+ [ForeignKey(typeof(MacroDto))]
public int Macro { get; set; }
[Column("macroPropertySortOrder")]
diff --git a/src/Umbraco.Core/Models/Rdbms/Member2MemberGroupDto.cs b/src/Umbraco.Core/Models/Rdbms/Member2MemberGroupDto.cs
index 66855681d5..89e07c25ea 100644
--- a/src/Umbraco.Core/Models/Rdbms/Member2MemberGroupDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/Member2MemberGroupDto.cs
@@ -10,9 +10,11 @@ namespace Umbraco.Core.Models.Rdbms
{
[Column("Member")]
[PrimaryKeyColumn(AutoIncrement = false, Name = "PK_cmsMember2MemberGroup", OnColumns = "[Member], [MemberGroup]")]
+ [ForeignKey(typeof(MemberDto))]
public int Member { get; set; }
[Column("MemberGroup")]
+ [ForeignKey(typeof(NodeDto))]
public int MemberGroup { get; set; }
}
}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Models/Rdbms/MemberDto.cs b/src/Umbraco.Core/Models/Rdbms/MemberDto.cs
index 5d64d79283..32e03f75d0 100644
--- a/src/Umbraco.Core/Models/Rdbms/MemberDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/MemberDto.cs
@@ -10,6 +10,8 @@ namespace Umbraco.Core.Models.Rdbms
{
[Column("nodeId")]
[PrimaryKeyColumn(AutoIncrement = false)]
+ [ForeignKey(typeof(ContentDto), Column = "nodeId")]
+ [ForeignKey(typeof(NodeDto))]
public int NodeId { get; set; }
[Column("Email")]
diff --git a/src/Umbraco.Core/Models/Rdbms/MemberTypeDto.cs b/src/Umbraco.Core/Models/Rdbms/MemberTypeDto.cs
index 0791730ac9..c9432652af 100644
--- a/src/Umbraco.Core/Models/Rdbms/MemberTypeDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/MemberTypeDto.cs
@@ -13,6 +13,8 @@ namespace Umbraco.Core.Models.Rdbms
public int PrimaryKey { get; set; }
[Column("NodeId")]
+ [ForeignKey(typeof(NodeDto))]
+ [ForeignKey(typeof(ContentTypeDto), Column = "nodeId")]
public int NodeId { get; set; }
[Column("propertytypeId")]
diff --git a/src/Umbraco.Core/Models/Rdbms/PropertyDataDto.cs b/src/Umbraco.Core/Models/Rdbms/PropertyDataDto.cs
index f85078e1bb..f125c6eaf3 100644
--- a/src/Umbraco.Core/Models/Rdbms/PropertyDataDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/PropertyDataDto.cs
@@ -25,7 +25,7 @@ namespace Umbraco.Core.Models.Rdbms
public Guid? VersionId { get; set; }
[Column("propertytypeid")]
- //[ForeignKey(typeof(PropertyTypeDto))]
+ [ForeignKey(typeof(PropertyTypeDto))]
[Index(IndexTypes.NonClustered, Name = "IX_cmsPropertyData_3")]
public int PropertyTypeId { get; set; }
diff --git a/src/Umbraco.Core/Models/Rdbms/PropertyTypeGroupDto.cs b/src/Umbraco.Core/Models/Rdbms/PropertyTypeGroupDto.cs
index 61781a4285..0bbf3a891f 100644
--- a/src/Umbraco.Core/Models/Rdbms/PropertyTypeGroupDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/PropertyTypeGroupDto.cs
@@ -15,6 +15,8 @@ namespace Umbraco.Core.Models.Rdbms
[Column("parentGroupId")]
[NullSetting(NullSetting = NullSettings.Null)]
+ //[Constraint(Default = "NULL")]
+ [ForeignKey(typeof(PropertyTypeGroupDto))]
public int? ParentGroupId { get; set; }
[Column("contenttypeNodeId")]
diff --git a/src/Umbraco.Core/Models/Rdbms/RelationDto.cs b/src/Umbraco.Core/Models/Rdbms/RelationDto.cs
index f3889dfd21..e204e42040 100644
--- a/src/Umbraco.Core/Models/Rdbms/RelationDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/RelationDto.cs
@@ -14,12 +14,15 @@ namespace Umbraco.Core.Models.Rdbms
public int Id { get; set; }
[Column("parentId")]
+ [ForeignKey(typeof(NodeDto), Name = "FK_umbracoRelation_umbracoNode")]
public int ParentId { get; set; }
[Column("childId")]
+ [ForeignKey(typeof(NodeDto), Name = "FK_umbracoRelation_umbracoNode1")]
public int ChildId { get; set; }
[Column("relType")]
+ [ForeignKey(typeof(RelationTypeDto))]
public int RelationType { get; set; }
[Column("datetime")]
diff --git a/src/Umbraco.Core/Models/Rdbms/StylesheetDto.cs b/src/Umbraco.Core/Models/Rdbms/StylesheetDto.cs
index 89165a1920..23ba061b9b 100644
--- a/src/Umbraco.Core/Models/Rdbms/StylesheetDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/StylesheetDto.cs
@@ -10,6 +10,7 @@ namespace Umbraco.Core.Models.Rdbms
{
[Column("nodeId")]
[PrimaryKeyColumn(AutoIncrement = false)]
+ [ForeignKey(typeof(NodeDto))]
public int NodeId { get; set; }
[Column("filename")]
diff --git a/src/Umbraco.Core/Models/Rdbms/TagRelationshipDto.cs b/src/Umbraco.Core/Models/Rdbms/TagRelationshipDto.cs
index 06e2fec3d1..e18cbeeb12 100644
--- a/src/Umbraco.Core/Models/Rdbms/TagRelationshipDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/TagRelationshipDto.cs
@@ -10,9 +10,11 @@ namespace Umbraco.Core.Models.Rdbms
{
[Column("nodeId")]
[PrimaryKeyColumn(AutoIncrement = false, Name = "PK_cmsTagRelationship", OnColumns = "[nodeId], [tagId]")]
+ [ForeignKey(typeof(NodeDto))]
public int NodeId { get; set; }
[Column("tagId")]
+ [ForeignKey(typeof(TagDto))]
public int TagId { get; set; }
}
}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Models/Rdbms/TaskDto.cs b/src/Umbraco.Core/Models/Rdbms/TaskDto.cs
index 5187c601e9..4c38197d67 100644
--- a/src/Umbraco.Core/Models/Rdbms/TaskDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/TaskDto.cs
@@ -22,12 +22,15 @@ namespace Umbraco.Core.Models.Rdbms
public byte TaskTypeId { get; set; }
[Column("nodeId")]
+ [ForeignKey(typeof(NodeDto))]
public int NodeId { get; set; }
[Column("parentUserId")]
+ [ForeignKey(typeof(UserDto), Name = "FK_cmsTask_umbracoUser")]
public int ParentUserId { get; set; }
[Column("userId")]
+ [ForeignKey(typeof(UserDto), Name = "FK_cmsTask_umbracoUser1")]
public int UserId { get; set; }
[Column("DateTime")]
diff --git a/src/Umbraco.Core/Models/Rdbms/TemplateDto.cs b/src/Umbraco.Core/Models/Rdbms/TemplateDto.cs
index ee24e4a0a6..a68704c361 100644
--- a/src/Umbraco.Core/Models/Rdbms/TemplateDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/TemplateDto.cs
@@ -19,6 +19,7 @@ namespace Umbraco.Core.Models.Rdbms
[Column("master")]
[NullSetting(NullSetting = NullSettings.Null)]
+ /*[ForeignKey(typeof(TemplateDto), Column = "nodeId")]*/
[ForeignKey(typeof(NodeDto), Name = "FK_cmsTemplate_cmsTemplate")]
public int? Master { get; set; }
diff --git a/src/Umbraco.Core/Models/Rdbms/User2NodeNotifyDto.cs b/src/Umbraco.Core/Models/Rdbms/User2NodeNotifyDto.cs
index 30414fd0c2..2163ca32c3 100644
--- a/src/Umbraco.Core/Models/Rdbms/User2NodeNotifyDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/User2NodeNotifyDto.cs
@@ -10,9 +10,11 @@ namespace Umbraco.Core.Models.Rdbms
{
[Column("userId")]
[PrimaryKeyColumn(AutoIncrement = false, Name = "PK_umbracoUser2NodeNotify", OnColumns = "[userId], [nodeId], [action]")]
+ [ForeignKey(typeof(UserDto))]
public int UserId { get; set; }
[Column("nodeId")]
+ [ForeignKey(typeof(NodeDto))]
public int NodeId { get; set; }
[Column("action")]
diff --git a/src/Umbraco.Core/Models/Rdbms/User2NodePermissionDto.cs b/src/Umbraco.Core/Models/Rdbms/User2NodePermissionDto.cs
index 2354e887c4..5ddd6dd07a 100644
--- a/src/Umbraco.Core/Models/Rdbms/User2NodePermissionDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/User2NodePermissionDto.cs
@@ -10,9 +10,11 @@ namespace Umbraco.Core.Models.Rdbms
{
[Column("userId")]
[PrimaryKeyColumn(AutoIncrement = false, Name = "PK_umbracoUser2NodePermission", OnColumns = "[userId], [nodeId], [permission]")]
+ [ForeignKey(typeof(UserDto))]
public int UserId { get; set; }
[Column("nodeId")]
+ [ForeignKey(typeof(NodeDto))]
public int NodeId { get; set; }
[Column("permission")]
diff --git a/src/Umbraco.Core/Persistence/Migrations/Initial/DatabaseCreation.cs b/src/Umbraco.Core/Persistence/Migrations/Initial/DatabaseSchemaCreation.cs
similarity index 95%
rename from src/Umbraco.Core/Persistence/Migrations/Initial/DatabaseCreation.cs
rename to src/Umbraco.Core/Persistence/Migrations/Initial/DatabaseSchemaCreation.cs
index 4108c928ce..5f39881e92 100644
--- a/src/Umbraco.Core/Persistence/Migrations/Initial/DatabaseCreation.cs
+++ b/src/Umbraco.Core/Persistence/Migrations/Initial/DatabaseSchemaCreation.cs
@@ -5,11 +5,11 @@ namespace Umbraco.Core.Persistence.Migrations.Initial
///
/// Represents the initial database schema creation by running CreateTable for all DTOs against the db.
///
- internal class DatabaseCreation
+ internal class DatabaseSchemaCreation
{
private readonly Database _database;
- public DatabaseCreation(Database database)
+ public DatabaseSchemaCreation(Database database)
{
_database = database;
}
diff --git a/src/Umbraco.Core/Persistence/PetaPocoExtensions.cs b/src/Umbraco.Core/Persistence/PetaPocoExtensions.cs
index 99ddc9e7b4..94251aec9b 100644
--- a/src/Umbraco.Core/Persistence/PetaPocoExtensions.cs
+++ b/src/Umbraco.Core/Persistence/PetaPocoExtensions.cs
@@ -72,11 +72,14 @@ namespace Umbraco.Core.Persistence
//If any statements exists for the primary key execute them here
if(!string.IsNullOrEmpty(createPrimaryKeySql))
db.Execute(new Sql(createPrimaryKeySql));
-
- //Loop through foreignkey statements and execute sql
- foreach (var sql in foreignSql)
+
+ if (DatabaseContext.Current.ProviderName.Contains("SqlServerCe") == false)
{
- int createdFk = db.Execute(new Sql(sql));
+ //Loop through foreignkey statements and execute sql
+ foreach (var sql in foreignSql)
+ {
+ int createdFk = db.Execute(new Sql(sql));
+ }
}
//Loop through index statements and execute sql
foreach (var sql in indexSql)
@@ -130,7 +133,7 @@ namespace Umbraco.Core.Persistence
LogHelper.Info("Initializing database schema creation");
- var creation = new DatabaseCreation(db);
+ var creation = new DatabaseSchemaCreation(db);
creation.InitializeDatabaseSchema();
NewTable -= PetaPocoExtensions_NewTable;
diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj
index 8743b72568..d4df8a8350 100644
--- a/src/Umbraco.Core/Umbraco.Core.csproj
+++ b/src/Umbraco.Core/Umbraco.Core.csproj
@@ -193,7 +193,7 @@
-
+