From ee6c810df57dc3a58622ab9e0c04cfd1bcc2b880 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Fri, 21 Oct 2016 17:01:12 +0900 Subject: [PATCH] Fix cascading inserts. --- osu.Game/Database/BeatmapInfo.cs | 14 ++++++++++---- osu.Game/Database/BeatmapSetInfo.cs | 19 ++++++++++++------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/osu.Game/Database/BeatmapInfo.cs b/osu.Game/Database/BeatmapInfo.cs index 874b6e3f8a..5b1d0c323c 100644 --- a/osu.Game/Database/BeatmapInfo.cs +++ b/osu.Game/Database/BeatmapInfo.cs @@ -10,18 +10,24 @@ namespace osu.Game.Database public class BeatmapInfo { [PrimaryKey] - public int BeatmapID { get; set; } + public int BeatmapID { get; set; } + [ForeignKey(typeof(BeatmapSetInfo))] public int BeatmapSetID { get; set; } + [ManyToOne] public BeatmapSetInfo BeatmapSet { get; set; } + [ForeignKey(typeof(BeatmapMetadata))] public int BeatmapMetadataID { get; set; } + + [OneToOne(CascadeOperations = CascadeOperation.All)] + public BeatmapMetadata Metadata { get; set; } + [ForeignKey(typeof(BaseDifficulty)), NotNull] public int BaseDifficultyID { get; set; } - [OneToOne] - public BeatmapMetadata Metadata { get; set; } - [OneToOne] + + [OneToOne(CascadeOperations = CascadeOperation.All)] public BaseDifficulty BaseDifficulty { get; set; } public string Path { get; set; } diff --git a/osu.Game/Database/BeatmapSetInfo.cs b/osu.Game/Database/BeatmapSetInfo.cs index 414b6b09f8..6dc0adfa01 100644 --- a/osu.Game/Database/BeatmapSetInfo.cs +++ b/osu.Game/Database/BeatmapSetInfo.cs @@ -8,14 +8,19 @@ namespace osu.Game.Database public class BeatmapSetInfo { [PrimaryKey] - public int BeatmapSetID { get; set; } - [OneToOne] - public BeatmapMetadata Metadata { get; set; } - [NotNull, ForeignKey(typeof(BeatmapMetadata))] + public int BeatmapSetID { get; set; } + + [OneToOne(CascadeOperations = CascadeOperation.All)] + public BeatmapMetadata Metadata { get; set; } + + [NotNull, ForeignKey(typeof(BeatmapMetadata))] public int BeatmapMetadataID { get; set; } - [OneToMany] - public List Beatmaps { get; set; } - public string Hash { get; set; } + + [OneToMany(CascadeOperations = CascadeOperation.All)] + public List Beatmaps { get; set; } + + public string Hash { get; set; } + public string Path { get; set; } } }