40 lines
1.2 KiB
C#
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
|
|
|
|
}
|
|
}
|
|
}
|