我使用EF4.3创建1至1间... 0的关系,但它扔EF4.3创建一对一或零关系失败
异常“操作失败,因为索引或与名称统计 'IX_id' 已经在表 'TestAs'”
的代码存在如下
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
using (myContext context = new myContext())
{
TestA tA = new TestA();
TestB tB = new TestB();
TestC tC = new TestC();
context.testA.Add(tA);
context.testB.Add(tB);
context.testC.Add(tC);
context.SaveChanges();
}
}
}
class TestA
{
public int id { get; set; }
//public TestB NavB { get; set; }
//public TestC NavC { get; set; }
}
class TestB
{
public int id { get; set; }
public TestA NavA { get; set; }
}
class TestC
{
public int id { get; set; }
public TestA NavA { get; set; }
}
class myContext : DbContext
{
public DbSet<TestA> testA { get; set; }
public DbSet<TestB> testB { get; set; }
public DbSet<TestC> testC { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<TestB>().HasOptional(x => x.NavA).WithRequired();
modelBuilder.Entity<TestC>().HasOptional(x => x.NavA).WithRequired();
}
}
}
任何人都可以帮助吗?通过WithOptionalPrincipal
在OnModelCreating
方法
哪个实体是这里的原理? – Eranga 2012-03-05 09:26:33
嗨Eranga,TestB和TestC是原理实体 – James 2012-03-05 09:32:13
Then'TestA'不能与共享主键映射。该模型是无效的(实际) – Eranga 2012-03-05 12:14:16