diff --git a/.idea/.idea.DiscImageChef/.idea/contentModel.xml b/.idea/.idea.DiscImageChef/.idea/contentModel.xml
index 944d37b97..298285fee 100644
--- a/.idea/.idea.DiscImageChef/.idea/contentModel.xml
+++ b/.idea/.idea.DiscImageChef/.idea/contentModel.xml
@@ -375,6 +375,7 @@
+
diff --git a/DiscImageChef.Database/DiscImageChef.Database.csproj b/DiscImageChef.Database/DiscImageChef.Database.csproj
index ec1808218..f312b52b8 100644
--- a/DiscImageChef.Database/DiscImageChef.Database.csproj
+++ b/DiscImageChef.Database/DiscImageChef.Database.csproj
@@ -104,6 +104,7 @@
+
diff --git a/DiscImageChef.Database/Models/BaseModel.cs b/DiscImageChef.Database/Models/BaseModel.cs
new file mode 100644
index 000000000..65efac785
--- /dev/null
+++ b/DiscImageChef.Database/Models/BaseModel.cs
@@ -0,0 +1,10 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace DiscImageChef.Database.Models
+{
+ public abstract class BaseModel
+ {
+ [Key]
+ public int Id { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/DiscImageChef.Database/Models/Command.cs b/DiscImageChef.Database/Models/Command.cs
index 07fa8b462..dd20165bb 100644
--- a/DiscImageChef.Database/Models/Command.cs
+++ b/DiscImageChef.Database/Models/Command.cs
@@ -30,14 +30,10 @@
// Copyright © 2011-2019 Natalia Portillo
// ****************************************************************************/
-using System.ComponentModel.DataAnnotations;
-
namespace DiscImageChef.Database.Models
{
- public class Command
+ public class Command : BaseModel
{
- [Key]
- public int Id { get; set; }
public string Name { get; set; }
public bool Synchronized { get; set; }
public ulong Count { get; set; }
diff --git a/DiscImageChef.Database/Models/DeviceStat.cs b/DiscImageChef.Database/Models/DeviceStat.cs
index 67135a805..485fc40ca 100644
--- a/DiscImageChef.Database/Models/DeviceStat.cs
+++ b/DiscImageChef.Database/Models/DeviceStat.cs
@@ -30,14 +30,10 @@
// Copyright © 2011-2019 Natalia Portillo
// ****************************************************************************/
-using System.ComponentModel.DataAnnotations;
-
namespace DiscImageChef.Database.Models
{
- public class DeviceStat
+ public class DeviceStat : BaseModel
{
- [Key]
- public int Id { get; set; }
public string Manufacturer { get; set; }
public string Model { get; set; }
public string Revision { get; set; }
diff --git a/DiscImageChef.Database/Models/Filesystem.cs b/DiscImageChef.Database/Models/Filesystem.cs
index a76aacc2a..f317656de 100644
--- a/DiscImageChef.Database/Models/Filesystem.cs
+++ b/DiscImageChef.Database/Models/Filesystem.cs
@@ -30,14 +30,10 @@
// Copyright © 2011-2019 Natalia Portillo
// ****************************************************************************/
-using System.ComponentModel.DataAnnotations;
-
namespace DiscImageChef.Database.Models
{
- public class Filesystem
+ public class Filesystem : BaseModel
{
- [Key]
- public int Id { get; set; }
public string Name { get; set; }
public bool Synchronized { get; set; }
public ulong Count { get; set; }
diff --git a/DiscImageChef.Database/Models/Filter.cs b/DiscImageChef.Database/Models/Filter.cs
index 6d0c06327..e919e8563 100644
--- a/DiscImageChef.Database/Models/Filter.cs
+++ b/DiscImageChef.Database/Models/Filter.cs
@@ -30,14 +30,10 @@
// Copyright © 2011-2019 Natalia Portillo
// ****************************************************************************/
-using System.ComponentModel.DataAnnotations;
-
namespace DiscImageChef.Database.Models
{
- public class Filter
+ public class Filter : BaseModel
{
- [Key]
- public int Id { get; set; }
public string Name { get; set; }
public bool Synchronized { get; set; }
public ulong Count { get; set; }
diff --git a/DiscImageChef.Database/Models/Media.cs b/DiscImageChef.Database/Models/Media.cs
index e7d93cfba..1b024fae0 100644
--- a/DiscImageChef.Database/Models/Media.cs
+++ b/DiscImageChef.Database/Models/Media.cs
@@ -30,14 +30,10 @@
// Copyright © 2011-2019 Natalia Portillo
// ****************************************************************************/
-using System.ComponentModel.DataAnnotations;
-
namespace DiscImageChef.Database.Models
{
- public class Media
+ public class Media : BaseModel
{
- [Key]
- public int Id { get; set; }
public string Type { get; set; }
public bool Real { get; set; }
public bool Synchronized { get; set; }
diff --git a/DiscImageChef.Database/Models/MediaFormat.cs b/DiscImageChef.Database/Models/MediaFormat.cs
index 2b120ec9f..3d2144bb9 100644
--- a/DiscImageChef.Database/Models/MediaFormat.cs
+++ b/DiscImageChef.Database/Models/MediaFormat.cs
@@ -30,14 +30,10 @@
// Copyright © 2011-2019 Natalia Portillo
// ****************************************************************************/
-using System.ComponentModel.DataAnnotations;
-
namespace DiscImageChef.Database.Models
{
- public class MediaFormat
+ public class MediaFormat : BaseModel
{
- [Key]
- public int Id { get; set; }
public string Name { get; set; }
public bool Synchronized { get; set; }
public ulong Count { get; set; }
diff --git a/DiscImageChef.Database/Models/OperatingSystem.cs b/DiscImageChef.Database/Models/OperatingSystem.cs
index eff40e4a2..ec67e0252 100644
--- a/DiscImageChef.Database/Models/OperatingSystem.cs
+++ b/DiscImageChef.Database/Models/OperatingSystem.cs
@@ -30,14 +30,10 @@
// Copyright © 2011-2019 Natalia Portillo
// ****************************************************************************/
-using System.ComponentModel.DataAnnotations;
-
namespace DiscImageChef.Database.Models
{
- public class OperatingSystem
+ public class OperatingSystem : BaseModel
{
- [Key]
- public int Id { get; set; }
public string Name { get; set; }
public string Version { get; set; }
public bool Synchronized { get; set; }
diff --git a/DiscImageChef.Database/Models/Partition.cs b/DiscImageChef.Database/Models/Partition.cs
index 48e40b358..d977a66c5 100644
--- a/DiscImageChef.Database/Models/Partition.cs
+++ b/DiscImageChef.Database/Models/Partition.cs
@@ -30,14 +30,10 @@
// Copyright © 2011-2019 Natalia Portillo
// ****************************************************************************/
-using System.ComponentModel.DataAnnotations;
-
namespace DiscImageChef.Database.Models
{
- public class Partition
+ public class Partition : BaseModel
{
- [Key]
- public int Id { get; set; }
public string Name { get; set; }
public bool Synchronized { get; set; }
public ulong Count { get; set; }
diff --git a/DiscImageChef.Database/Models/UsbProduct.cs b/DiscImageChef.Database/Models/UsbProduct.cs
index 62aa98139..6d337773d 100644
--- a/DiscImageChef.Database/Models/UsbProduct.cs
+++ b/DiscImageChef.Database/Models/UsbProduct.cs
@@ -31,12 +31,11 @@
// ****************************************************************************/
using System;
-using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace DiscImageChef.Database.Models
{
- public class UsbProduct
+ public class UsbProduct : BaseModel
{
public UsbProduct() { }
@@ -48,8 +47,6 @@ namespace DiscImageChef.Database.Models
AddedWhen = ModifiedWhen = DateTime.UtcNow;
}
- [Key]
- public int Id { get; set; }
[Index]
public ushort ProductId { get; set; }
public string Product { get; set; }
diff --git a/DiscImageChef.Database/Models/UsbVendor.cs b/DiscImageChef.Database/Models/UsbVendor.cs
index 33c8f0b58..adced354e 100644
--- a/DiscImageChef.Database/Models/UsbVendor.cs
+++ b/DiscImageChef.Database/Models/UsbVendor.cs
@@ -32,12 +32,11 @@
using System;
using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace DiscImageChef.Database.Models
{
- public class UsbVendor
+ public class UsbVendor : BaseModel
{
public UsbVendor() { }
@@ -48,8 +47,6 @@ namespace DiscImageChef.Database.Models
AddedWhen = ModifiedWhen = DateTime.UtcNow;
}
- [Key]
- public ushort Id { get; set; }
public string Vendor { get; set; }
public DateTime AddedWhen { get; set; }
[Index]