Files
vegasco/src/Vegasco.Server.Api/Cars/Car.cs

43 lines
954 B
C#
Raw Normal View History

2024-08-17 16:38:40 +02:00
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using Vegasco.Server.Api.Consumptions;
using Vegasco.Server.Api.Users;
2024-08-17 16:38:40 +02:00
namespace Vegasco.Server.Api.Cars;
public class Car
{
public CarId Id { get; set; } = CarId.New();
public string Name { get; set; } = "";
2024-08-17 16:38:40 +02:00
public string UserId { get; set; } = "";
public virtual User User { get; set; } = null!;
public virtual ICollection<Consumption> Consumptions { get; set; } = [];
2024-08-17 16:38:40 +02:00
}
public class CarTableConfiguration : IEntityTypeConfiguration<Car>
{
public const int NameMaxLength = 50;
public void Configure(EntityTypeBuilder<Car> builder)
{
builder.HasKey(x => x.Id);
builder.Property(x => x.Id)
.HasConversion<CarId.EfCoreValueConverter>();
2024-08-17 16:38:40 +02:00
builder.Property(x => x.Name)
.IsRequired()
.HasMaxLength(NameMaxLength);
builder.Property(x => x.UserId)
.IsRequired();
builder.HasOne(x => x.User)
.WithMany(x => x.Cars);
}
}