entity-frameworkunidatau2netdk

Merging Tables/Files


I am using entity framework code first and mapping our unidata files to tables to get data. I am wanting to join the tables or use navigation properties. The 2 tables share a common field called WorkInProgressOperationId. I have tried using join and navigation properties but it does not seem to work when mapping to unidata files.Is this possible?

        public class WorkInProgressMapping : EntityTypeConfiguration<WorkInProgress>
{

    public WorkInProgressMapping()
    {          
        this.ToTable("WIPMASTER");
        this.HasKey(e => e.WorkInProgressId).Ignore(e => e.EntityId);           
        this.Property(e => e.WorkInProgressId).HasColumnName("@ID");
        this.Property(e => e.SequenceNumber).HasColumnName("OPER_SEQ_NBR");
        this.Property(e => e.WorkOrderNumber).HasColumnName("WORK_ORDER");
        this.Property(e => e.StartQuantity).HasColumnName("SCHED_COMP_QTY");
        this.Property(e => e.JobNumber).HasColumnName("JOB_NBR");
        this.Property(e => e.JobDetailId).HasColumnName("JOBDET_ID");
        this.Property(e => e.ComputerGeneratedNumber).HasColumnName("CPN");
        this.Property(e => e.ItemNumber).HasColumnName("ITEM_NBR");
        this.Property(e => e.ParentWorkOrder).HasColumnName("PARENT_WO");
        this.Property(e => e.ParentDueDate).HasColumnName("SCHED_COMP_DATE");
        this.Property(e => e.WorkOrderIssueDate).HasColumnName("RELEASE_DATE");
        this.Property(e => e.WorkInProgressOperationId).HasColumnName("WIPOPERACT_ID");
    }
}

        public class WorkInProgressOperationMapping : EntityTypeConfiguration<WorkInProgressOperation>
{

    public WorkInProgressOperationMapping()
    {
       this.ToTable("WIPOPER");
       this.HasKey(e => e.WorkInProgressOperationId).Ignore(e => e.EntityId);
       this.Property(e => e.WorkInProgressOperationId).HasColumnName("@ID");
       this.Property(e => e.OperationNumber).HasColumnName("OPERATION_NBR");
       this.Property(e => e.OperationSequence).HasColumnName("OPER_SEQ");
       this.Property(e => e.WorkOrder).HasColumnName("WORK_ORDER");
       this.Property(e => e.NextSequence).HasColumnName("NEXT_SEQ");
       this.Property(e => e.Status).HasColumnName("OPER_STATUS");
       this.Property(e => e.QuantityComplete).HasColumnName("QTY_COMPLETE");
       this.Property(e => e.SalesOrderDeliveryDate).HasColumnName("DUE_SO");
       this.Property(e => e.WorkOrderDeliveryDate).HasColumnName("WO_DUE");
       this.Property(e => e.StartingQuantity).HasColumnName("EXP_START_QTY");

    }
}

Solution

  • Another Example : One to Many Relation (U2 Tables/Files)

    using System;
    using System.Collections.Generic;
    using System.Data.Entity;
    using System.Data.Entity.ModelConfiguration;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Test_EF5
    {
    
    
        public class Customer
        {
            public string CustomerID { get; set; }
            public string FirstName { get; set; }
    
            public virtual ICollection<Rental> Rentals { get; set; }
        }
    
        public class Rental
        {
            public string RentalID { get; set; }
            public string CustomerID { get; set; }
            public decimal Balance { get; set; }
            public virtual Customer Customer { get; set; }
        }
    
        public class CustomerMapping : EntityTypeConfiguration<Customer>
        {
            public CustomerMapping()
            {
                this.ToTable("MEMBERS");
                this.Property(e => e.CustomerID).HasColumnName("MEMBERS_PK");
                this.Property(e => e.FirstName).HasColumnName("FIRST_NAME");
                this.HasKey(e => e.CustomerID);
            }
    
        }
    
        public class RentalMapping : EntityTypeConfiguration<Rental>
        {
            public RentalMapping()
            {
                this.ToTable("RENTAL_DETAILS");
                this.Property(e => e.RentalID).HasColumnName("RENTAL_DETAIL_PK");
                this.Property(e => e.Balance).HasColumnName("BALANCE.DUE");
                this.Property(e => e.CustomerID).HasColumnName("CUSTOMER.CODE");
    
    
                this.HasKey(e => new { e.RentalID });
                HasRequired(p => p.Customer)
                    .WithMany(b => b.Rentals)
                    .HasForeignKey(p => new { p.CustomerID });
    
            }
    
        }
    
        public class CustomerContext : DbContext
        {
            public CustomerContext()
            {
    
            }
            public DbSet<Customer> Customers { get; set; }
            public DbSet<Rental> Rentals { get; set; }
    
            protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                base.OnModelCreating(modelBuilder);
                modelBuilder.Configurations.Add(new CustomerMapping());
                modelBuilder.Configurations.Add(new RentalMapping());
    
            }
        }
    }