J'utilise le code premier CTP 5. J'ai une configuration assez simple entre une table parent et tables enfantpremier code et références parent-enfant
Create table testA (
id int not null identity(1,1),
stuff varchar(200),
primary key (id)
);
go
create table testB (
id int not null
foreign key references testA(id),
morestuff varchar(200),
primary key (id)
);
go
Pour se référer à ce tableau en utilisant le code d'abord, nous avons la construction suivante:
namespace Test.Models
{
public class TestEntities : DbContext
{
public DbSet<testa> testa { get; set; }
public DbSet<testb> testb { get; set; }
protected override void OnModelCreating(System.Data.Entity.ModelConfiguration.ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<testa>().ToTable("testa");
modelBuilder.Entity<testa>()
.Property(p => p.id)
.HasDatabaseGenerationOption(DatabaseGenerationOption.Identity);
modelBuilder.Entity<testb>().ToTable("testb");
}
}
public class testa
{
public int id { get; set; }
public String stuff { get; set; }
public virtual testb testb { get; set; }
}
public class testb
{
public int id { get; set; }
public string morestuff { get; set; }
public virtual testa testa { get; set; }
}
}
lorsque je tente d'ajouter un enregistrement à testa, je reçois l'erreur « Impossible d'insérer la valeur explicite pour la colonne d'identité dans le tableau « testa » lorsque IDENTITY_INSERT est réglé sur OFF. »
Ok. Strike 1 to Code First pour ne pas reconnaître que Id est une colonne d'identité. Nous pouvons résoudre ce problème, donc nous dire que CodeFirst testa.id est une identité:
modelBuilder.Entity<testa>()
.Property(p => p.id)
.HasDatabaseGenerationOption(DatabaseGenerationOption.Identity);
Cela fait, nous courons encore et d'obtenir une autre erreur: « Une propriété dépendante dans un ReferentialConstraint est mis en correspondance avec une colonne générée en magasin Colonne: 'id' ". Alors - quel est le problème avec cette image? Qu'est-ce que je fais mal et comment puis-je le réparer ???