Quantcast
Channel: EntityFramework Reverse POCO Code First Generator
Viewing all articles
Browse latest Browse all 1642

New Post: Some Foreign Keys are not generated

$
0
0
Hi Christopher,

I used:
CREATE TABLE [dbo].[CompanyGroup](
    [cogID] [int] IDENTITY(1,1) NOT NULL,
    [cogCompanyGroupName] [nvarchar](50) NULL,
    [cogValidFrom] [datetime] NULL,
    [cogValidTo] [datetime] NULL,
 CONSTRAINT [PK_CompanyGroup] PRIMARY KEY CLUSTERED 
(
    [cogID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[Company](
    [coID] [int] IDENTITY(1,1) NOT NULL,
    [cocogID] [int] NULL,
    [cocuID] [int] NULL,
    [coName] [nvarchar](255) NULL,
    [coShortName] [nvarchar](50) NULL,
    [coHtmlName] [nvarchar](1000) NULL,
    [coEmployerNo] [nvarchar](50) NULL,
    [coValidFrom] [datetime] NULL,
    [coValidTo] [datetime] NULL,
    [coVatIdNo] [nvarchar](50) NULL,
    [coURL] [nvarchar](255) NULL,
    [coActive] [bit] NOT NULL CONSTRAINT [DFCompanyCoActive]  DEFAULT ((0)),
 CONSTRAINT [PK_Company] PRIMARY KEY CLUSTERED 
(
    [coID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Company]  WITH CHECK ADD  CONSTRAINT [FK_Company_CompanyGroup] FOREIGN KEY([cocogID])
REFERENCES [dbo].[CompanyGroup] ([cogID])
And generated the following:
// Company
    public class Company
    {
        public int CoId { get; set; } // coID (Primary key)
        public int? CocogId { get; set; } // cocogID
        public int? CocuId { get; set; } // cocuID
        public string CoName { get; set; } // coName
        public string CoShortName { get; set; } // coShortName
        public string CoHtmlName { get; set; } // coHtmlName
        public string CoEmployerNo { get; set; } // coEmployerNo
        public DateTime? CoValidFrom { get; set; } // coValidFrom
        public DateTime? CoValidTo { get; set; } // coValidTo
        public string CoVatIdNo { get; set; } // coVatIdNo
        public string CoUrl { get; set; } // coURL
        public bool CoActive { get; set; } // coActive

        // Foreign keys
        public virtual CompanyGroup CompanyGroup { get; set; } // FK_Company_CompanyGroup
        
        public Company()
        {
            CoActive = false;
        }
    }

    // CompanyGroup
    [GeneratedCodeAttribute("EF.Reverse.POCO.Generator", "2.13.0.0")]
    public class CompanyGroup
    {
        public int CogId { get; set; } // cogID (Primary key)
        public string CogCompanyGroupName { get; set; } // cogCompanyGroupName
        public DateTime? CogValidFrom { get; set; } // cogValidFrom
        public DateTime? CogValidTo { get; set; } // cogValidTo

        // Reverse navigation
        public virtual ICollection<Company> Companies { get; set; } // Company.FK_Company_CompanyGroup
        
        public CompanyGroup()
        {
            Companies = new List<Company>();
        }
    }

    // Company
    internal class CompanyConfiguration : EntityTypeConfiguration<Company>
    {
        public CompanyConfiguration(string schema = "dbo")
        {
            ToTable(schema + ".Company");
            HasKey(x => x.CoId);

            Property(x => x.CoId).HasColumnName("coID").IsRequired().HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
            Property(x => x.CocogId).HasColumnName("cocogID").IsOptional();
            Property(x => x.CocuId).HasColumnName("cocuID").IsOptional();
            Property(x => x.CoName).HasColumnName("coName").IsOptional().HasMaxLength(255);
            Property(x => x.CoShortName).HasColumnName("coShortName").IsOptional().HasMaxLength(50);
            Property(x => x.CoHtmlName).HasColumnName("coHtmlName").IsOptional().HasMaxLength(1000);
            Property(x => x.CoEmployerNo).HasColumnName("coEmployerNo").IsOptional().HasMaxLength(50);
            Property(x => x.CoValidFrom).HasColumnName("coValidFrom").IsOptional();
            Property(x => x.CoValidTo).HasColumnName("coValidTo").IsOptional();
            Property(x => x.CoVatIdNo).HasColumnName("coVatIdNo").IsOptional().HasMaxLength(50);
            Property(x => x.CoUrl).HasColumnName("coURL").IsOptional().HasMaxLength(255);
            Property(x => x.CoActive).HasColumnName("coActive").IsRequired();

            // Foreign keys
            HasOptional(a => a.CompanyGroup).WithMany(b => b.Companies).HasForeignKey(c => c.CocogId); // FK_Company_CompanyGroup
        }
    }

    // CompanyGroup
    internal class CompanyGroupConfiguration : EntityTypeConfiguration<CompanyGroup>
    {
        public CompanyGroupConfiguration(string schema = "dbo")
        {
            ToTable(schema + ".CompanyGroup");
            HasKey(x => x.CogId);

            Property(x => x.CogId).HasColumnName("cogID").IsRequired().HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
            Property(x => x.CogCompanyGroupName).HasColumnName("cogCompanyGroupName").IsOptional().HasMaxLength(50);
            Property(x => x.CogValidFrom).HasColumnName("cogValidFrom").IsOptional();
            Property(x => x.CogValidTo).HasColumnName("cogValidTo").IsOptional();
        }
    }
It has the foreign key that I was able to create. I couldn't use FK_Company_Customers as I don't have the SQL for the [dbo].[Customers] table.

Viewing all articles
Browse latest Browse all 1642

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>