I'm working on an Entity Framework 5 Code First project. Right now I'm gettcannot be createding the error:
"Cascading foreign key 'FK_dbo.DriverLicense_dbo.Person_PersonId' where the referencing column 'DriverLicense.PersonId' is an identity column.\r\nCould not create constraint
These are my entities, Why I'm getting that error? I'm not saying PersonId is identity there in DriverLicense entity.
public class DriverLicense
{
public long DriverLicenseId { get; set; }
public long LicenseNumber { get; set; }
public long PersonId { get; set; }
public virtual Person Person { get; set; }
}
public class DriverLicenseMap : EntityTypeConfiguration<DriverLicense>
{
public DriverLicenseMap()
{
this.HasKey(t => t.DriverLicenseId);
// Table & Column Mappings
this.ToTable("DriverLicense");
this.Property(t => t.DriverLicenseId).HasColumnName("DriverLicenseId");
this.Property(t => t.LicenseNumber).HasColumnName("LicenseNumber");
this.Property(t => t.PersonId).HasColumnName("PersonId");
this.HasRequired(t => t.Person)
.WithMany(t => t.DriverLicenses)
.HasForeignKey(d => d.PersonId);
}
}
public class Person
{
public Person()
{
this.DriverLicenses = new List<DriverLicense>();
}
public long PersonId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public virtual ICollection<DriverLicense> DriverLicenses { get; set; }
}
public class PersonMap : EntityTypeConfiguration<Person>
{
public PersonMap()
{
// Primary Key
this.HasKey(t => t.PersonId);
// Properties
this.Property(t => t.FirstName)
.IsRequired()
.HasMaxLength(50);
this.Property(t => t.LastName)
.IsRequired()
.HasMaxLength(50);
// Table & Column Mappings
this.ToTable("Person");
this.Property(t => t.PersonId).HasColumnName("PersonId");
this.Property(t => t.FirstName).HasColumnName("FirstName");
this.Property(t => t.LastName).HasColumnName("LastName");
}
Thanks in advance! Guillermo.
EDIT: With SQL Profiler I can see this:
CREATE TABLE [dbo].[DriverLicense] (
[DriverLicenseId] [bigint] NOT NULL,
[LicenseNumber] [bigint] NOT NULL,
[PersonId] [bigint] NOT NULL IDENTITY,
CONSTRAINT [PK_dbo.DriverLicense] PRIMARY KEY ([DriverLicenseId])
)
I do not understand why PersonId is created as Identity