labdb/Models/City.cs
2022-11-15 18:07:10 +01:00

29 lines
1,017 B
C#

using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using NetTopologySuite.Geometries;
namespace labdb.Models;
public record CityId : EntityIdBase<CityId>;
public class City : EntityBase<CityId>
{
public string Name { get; set; } = null!;
public string? EnglishName { get; set; }
public CountryId CountryId { get; set; } = null!;
public Country Country { get; set; } = null!;
public Point Location { get; set; } = null!;
}
public class CityConfiguration : EntityBaseConfiguration<City, CityId>
{
public override void Configure(EntityTypeBuilder<City> builder)
{
base.Configure(builder);
builder.HasIndex(x => x.Name, "name").IsUnique();
builder.HasIndex(x => x.Name, "name_trgm").HasMethod("gin").HasOperators("gin_trgm_ops");
builder.HasIndex(x => x.EnglishName, "english_name").IsUnique();
builder.HasIndex(x => x.EnglishName, "english_name_trgm").HasMethod("gin").HasOperators("gin_trgm_ops");
}
}