Hi Christopher,
I used:
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.