I cannot map EF

Asked

Viewed 22 times

1

I have this entity in my domain:

    public class CalibrationToolActivePart
        {
            [Key]
            public int CalibrationToolActivePartID { get; set; }

            public int CalibrationToolID { get; set; }

            public int CalibrationToolTypePartID { get; set; }

            public int MeasureUnitID { get; set; }

            [ForeignKey("CalibrationToolID")]
            [ScriptIgnore(ApplyToOverrides=true)]
            public virtual CalibrationTool CalibrationTool { get; set; }

            [ForeignKey("CalibrationToolTypePartID")]
            [ScriptIgnore(ApplyToOverrides = true)]
            public virtual CalibrationToolTypePart CalibrationToolTypePart { get; set; }

            [ForeignKey("MeasureUnitID")]
            [ScriptIgnore(ApplyToOverrides = true)]
            public virtual MeasureUnit MeasureUnit { get; set; }
            public int? ToleranceID { get; set; }
            //TODO: Tolerance outra tabela
            [ForeignKey("ToleranceID")]
            public virtual Tolerance Tolerance { get; set; }

            public bool Active { get; set; }
        }  

And the one that sends the foreign key:

 public class Tolerance
    {
        [Key]
        public int ToleranceID { get; set; }
        [Display(Name = "Nome")]
        [Required(ErrorMessage = "O campo \"Nome\" deve ser preenchido")]
        public string Name { get; set; }
        [Required(ErrorMessage = "O campo \"Tipo\" deve ser selecionado")]
        public int MeasureTypeID { get; set; }
        [ForeignKey("MeasureTypeID")]
        public virtual MeasureType MeasureType { get; set; }
        [Required(ErrorMessage = "O campo \"Unidade\" deve ser selecionado")]
        public int MeasureUnitID { get; set; }
        [ForeignKey("MeasureUnitID")]
        public virtual MeasureUnit MeasureUnit { get; set; }
        [Required(ErrorMessage = "O campo \"Máximo Permitido\" deve ser preenchido")]
        public int CompanyID { get; set; }
        [Required(ErrorMessage = "O campo \"Mínimo\" deve ser preenchido")]
        public double Minimum { get; set; }
        [Required(ErrorMessage = "O campo \"Máximo\" deve ser preenchido")]
        public double Maximum { get; set; }
        public bool Inactive { get; set; }
        [ScriptIgnore(ApplyToOverrides=true)]
        public virtual ICollection<CalibrationToolActivePart> CalibrationToolActiveParts { get; set; }

        public double MaximumAllowed { get; set; }
        [Required(ErrorMessage = "O campo \"Total\" deve ser preenchido")]
        public double Total { get; set; }
    }

The mapper module looks like this:

 internal class CalibrationConfiguration : EntityTypeConfiguration<Calibration>
    {
        public CalibrationConfiguration()
        {
            HasRequired<CalibrationTool>(x => x.CalibrationTool)
                .WithMany(x => x.Calibrations)
                .HasForeignKey(x => x.CalibrationToolID);


            HasMany<File>(x => x.StandardCertificationFiles)
                .WithMany(x => x.Calibrations)
                .Map(m =>
                {
                    m.ToTable("Calibrations_Files");
                    m.MapLeftKey("CalibrationID");
                    m.MapRightKey("FileID");
                });

            HasMany<CalibrationTool>(x => x.CalibrationToolsUsed)
                .WithMany()
                .Map(m =>
                {
                    m.ToTable("Calibrations_CalibrationTools");
                    m.MapLeftKey("CalibrationID");
                    m.MapRightKey("CalibrationToolID");
                });
        }

this is the other:

 internal class ToleranceConfiguration : EntityTypeConfiguration<Tolerance>
    {
        public ToleranceConfiguration()
        {
            HasMany<CalibrationToolActivePart>(x => x.CalibrationToolActiveParts)
                .WithOptional(x => x.Tolerance)
                .HasForeignKey(x => x.ToleranceID);
        }
    }

only that I would have to leave N to N I’m not able to do that, need more information just comment that I’ll put.

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.