我使用的代碼第一次CTP 5.我有一個父表和子表之間的一個相當簡單的設置代碼優先和親子引用
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
要指的是使用代碼首先,我們有這些表下面的結構:
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; }
}
}
當我嘗試將記錄添加到種皮,我得到的錯誤「當IDENTITY_INSERT設置爲OFF無法插入表‘種皮’標識列明確的價值。」
好的。不要識別Id是標識列,請先執行Code First。我們可以解決這個問題,所以我們告訴CodeFirst即testa.id是一個身份:
modelBuilder.Entity<testa>()
.Property(p => p.id)
.HasDatabaseGenerationOption(DatabaseGenerationOption.Identity);
上述工作完成後,我們再次運行它,並得到另一個錯誤:「在ReferentialConstraint從屬屬性映射到一個存儲生成列。列:'id'「。那麼 - 這張照片有什麼問題?
我在做什麼錯,我該如何解決?