0

複合キーを使用して 1 対多の関係を作成しようとすると、「シーケンスに複数の一致する要素が含まれています」というエラーが表示されます。

お願い助けて!

modelBuilder.Entity<PracticePilotScoringInfo>()
                    .HasKey(info => new { info.DriverName, info.Control,info.VehicleClass, info.ScoringInfoId });

        modelBuilder.Entity<PracticeScoringInfo>()
            .HasKey(info => info.Id)
            .HasMany(info => info.PracticePilotScoringInfos)
            .WithRequired(info => info.ScoringInfo)
            .HasForeignKey(info => new { info.DriverName, info.Control, info.VehicleClass, info.ScoringInfoId });



        public class PracticeScoringInfo : ScoringInfo
{
    public int GrandPrixId { get; set; }
    public GrandPrix GrandPrix { get; set; }

    public virtual ICollection<PracticePilotScoringInfo> PracticePilotScoringInfos { get; set; }
}


public class PracticePilotScoringInfo : PilotScoringInfo
{
    public string DriverName { get; set; }
    public ControlType Control { get; set; }
    public string VehicleClass { get; set; }
    public Guid ScoringInfoId { get; set; }
    public virtual PracticeScoringInfo ScoringInfo { get; set; }
}


        public Configuration()
    {
        AutomaticMigrationsEnabled = true;
        AutomaticMigrationDataLossAllowed = true;

    }
4

1 に答える 1

0

Fluent API マッピングで識別されていないようです。以下の宣言は正常に機能しています

            modelBuilder.Entity<ScoringInfo>()
            .HasKey(info => info.Id);

        modelBuilder.Entity<PracticeScoringInfo>()
            .HasKey(info => info.Id);

        modelBuilder.Entity<PilotScoringInfo>()
                    .HasKey(info => new { info.DriverName, info.Control, info.VehicleClass, info.ScoringInfoId });

        modelBuilder.Entity<PracticePilotScoringInfo>()
            .HasKey(info => new { info.DriverName, info.Control, info.VehicleClass, info.ScoringInfoId });
于 2013-09-01T14:36:41.533 に答える