modelBuilder.Entity()
.HasOne(a => a.ArrivePlace)
.WithMany()
.HasForeignKey(a => a.ArrivePlaceId);
modelBuilder.Entity()
.HasOne(a => a.DeparturePlace)
.WithMany()
.HasForeignKey(a => a.DeparturePlaceId);
< /code>
modelBuilder.Entity()
.HasMany(a => a.FromCities)
.WithMany()
.UsingEntity();
modelBuilder.Entity()
.HasMany(a => a.ToCities)
.WithMany()
.UsingEntity();
< /code>
public class RouteFromCity
{
public City City { get; set; }
public int CityId { get; set; }
public int RouteId { get; set; }
public Route Route { get; set; }
}
public class RouteToCity
{
public int CityId { get; set; }
public City City { get; set; }
public int RouteId { get; set; }
public Route Route { get; set; }
}
< /code>
When I try to edit cities in the FromCities
или поля Tocities , я получаю ошибку:
Нарушение ограничения первичного ключа 'pk_routefromcity'. Невозможно вставить дубликат ключа в объект 'dbo.routefromcity'. Значение дубликата ключа составляет (2, 1013)
Первый класс: < /p> [code]public class Route { [Key] public int Id { get; private set; }
public decimal Price { get; set; }
public decimal CapitalPrice { get; set; }
public int CurrencyId { get; set; }
[DeleteBehavior(DeleteBehavior.NoAction)] public Currency Currency { get; set; } = null!;
public int DeparturePlaceId { get; set; } [DeleteBehavior(DeleteBehavior.NoAction)]
public City DeparturePlace { get; set; } = null!;
public int ArrivePlaceId { get; set; } [DeleteBehavior(DeleteBehavior.NoAction)]
public City ArrivePlace { get; set; } = null!;
[DefaultValue(value: false)] public bool IsDeleted { get; set; }
public DateTime CreatedAt { get; set; } = DateTime.Now;
public DateTime UpdatedAt { get; set; } = DateTime.Now;
[DeleteBehavior(DeleteBehavior.NoAction)] public ICollection? FromCities { get; set; } = null!;
[DeleteBehavior(DeleteBehavior.NoAction)] public ICollection? ToCities { get; set; } = null!;
[DeleteBehavior(DeleteBehavior.NoAction)] public ICollection? Trips { get; set; } = null!;
[DeleteBehavior(DeleteBehavior.NoAction)] public ICollection? BookingItems { get; set; } = null!;
[DeleteBehavior(DeleteBehavior.Cascade)] public ICollection? DepartureTimes { get; set; } } < /code> И это второй класс: < /p> public class City { [Key] public int Id { get; set; }
[Column(TypeName = "nvarchar(35)")] public string Name { get; set; } = null!;
public byte CountryId { get; set; }
[DeleteBehavior(DeleteBehavior.NoAction)] public Country Country { get; set; } = null!;
[DeleteBehavior(DeleteBehavior.NoAction)] public ICollection ? Branches { get; set; }
public ICollection? Routes { get; set; } } [/code] Я хочу, чтобы ядро предприятия поняла это сложное соотношение между маршрутом и City Я попробовал это: < /p> [code]modelBuilder.Entity() .HasOne(a => a.ArrivePlace) .WithMany() .HasForeignKey(a => a.ArrivePlaceId);
modelBuilder.Entity() .HasMany(a => a.ToCities) .WithMany() .UsingEntity(); < /code> public class RouteFromCity { public City City { get; set; } public int CityId { get; set; } public int RouteId { get; set; } public Route Route { get; set; } }
public class RouteToCity { public int CityId { get; set; } public City City { get; set; } public int RouteId { get; set; } public Route Route { get; set; } } < /code> When I try to edit cities in the FromCities[/code] или поля Tocities , я получаю ошибку:
Нарушение ограничения первичного ключа 'pk_routefromcity'. Невозможно вставить дубликат ключа в объект 'dbo.routefromcity'. Значение дубликата ключа составляет (2, 1013)
Какой эффективный запрос я могу сделать, чтобы получить все строки Item на основе списка терминов включения/исключения, при этом текстовый поиск также применяется к отношениям «многие ко многим» и «один ко многим» ?
Я пытаюсь использовать SQLAlchemy...
У меня есть набор очень сложных отношений для многих ко многим, которые я хочу запросить одновременно, с некоторыми дополнительными сложностями, включая составные клавиши, а не allow , желая искать все эти отношения. Это структурировано примерно...