Add books.

This commit is contained in:
2019-06-17 02:37:45 +01:00
parent 8e19bc4dee
commit abb435af19
7 changed files with 7979 additions and 1 deletions

View File

@@ -0,0 +1,21 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace Cicm.Database.Models
{
public class Book : DocumentBase
{
[StringLength(13, MinimumLength = 10)]
public string Isbn { get; set; }
public short? Pages { get; set; }
public int? Edition { get; set; }
public long? PreviousId { get; set; }
public long? SourceId { get; set; }
public virtual Book Previous { get; set; }
public virtual Book Source { get; set; }
public virtual Book Next { get; set; }
public virtual Iso31661Numeric Country { get; set; }
public virtual ICollection<Book> Derivates { get; set; }
}
}

View File

@@ -49,5 +49,6 @@ namespace Cicm.Database.Models
public virtual ICollection<Company> Companies { get; set; }
public virtual ICollection<Person> People { get; set; }
public virtual ICollection<Document> Documents { get; set; }
public virtual ICollection<Book> Books { get; set; }
}
}

View File

@@ -85,6 +85,7 @@ namespace Cicm.Database.Models
public virtual DbSet<DocumentCompany> DocumentCompanies { get; set; }
public virtual DbSet<CompaniesByDocument> CompaniesByDocuments { get; set; }
public virtual DbSet<DocumentsByMachine> DocumentsByMachines { get; set; }
public virtual DbSet<Book> Books { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
@@ -99,6 +100,33 @@ namespace Cicm.Database.Models
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Book>(entity =>
{
entity.HasIndex(e => e.Title);
entity.HasIndex(e => e.NativeTitle);
entity.HasIndex(e => e.Published);
entity.HasIndex(e => e.CountryId);
entity.HasIndex(e => e.Synopsis).ForMySqlIsFullText();
entity.HasIndex(e => e.Isbn);
entity.HasIndex(e => e.Pages);
entity.HasIndex(e => e.Edition);
entity.HasOne(d => d.Previous).WithOne(d => d.Next).HasForeignKey<Book>(d => d.PreviousId)
.OnDelete(DeleteBehavior.ClientSetNull);
entity.HasOne(d => d.Source).WithMany(d => d.Derivates).HasForeignKey(d => d.SourceId)
.OnDelete(DeleteBehavior.ClientSetNull);
entity.HasOne(d => d.Country).WithMany(p => p.Books).HasForeignKey(d => d.CountryId);
});
modelBuilder.Entity<BrowserTest>(entity =>
{
entity.ToTable("browser_tests");