KoogleApp/Koogle.Infrastructure_OLD/Data/Configurations/PlayerConfiguration.cs

40 lines
1.2 KiB
C#

using KoogleApp.Entities;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace Koogle.Infrastructure.Data.Configurations
{
public class PlayerConfiguration : IEntityTypeConfiguration<Player>
{
public void Configure(EntityTypeBuilder<Player> builder)
{
// Tabellennamen
builder.ToTable("Players");
// Primärschlüssel
builder.HasKey(e => e.Id);
// Eigenschaften
builder.Property(e => e.Name).IsRequired().HasMaxLength(200);
//entity.Property(e => e.Description).HasMaxLength(1000);
//builder.Property(e => e.ModifiedBy).HasMaxLength(100);
// Indizes
builder.HasIndex(g => g.IsDeleted);
// Beziehungen
// 1:n Beziehung zu Positionen
builder.HasMany(e => e.Expenses)
.WithOne(p => p.Player)
.HasForeignKey(p => p.PlayerId)
.OnDelete(DeleteBehavior.Cascade); // Cascade Delete
}
}
}