0

首先,我跟着从这个链接的例子:http://blog.bennymichielsen.be/2011/06/02/entity-framework-4-1-one-to-one-mapping/这似乎是固体,但是当我尝试创建支架,它崩溃给我的错误我没有导航键。如何配置实体框架一比一的关系,代码第一次

这里是我的代码:

本班:

public class CodigoAgrupadorCuentas 
{ 
    public CodigoAgrupadorCuentas() 
    { 
     CatalogoDeCuentas = new CatalogoDeCuentas(); 
    } 

    public int CodigoAgrupadorCuentasID { get; set; } 

    public string description { get; set; } 

    public virtual CatalogoDeCuentas CatalogoDeCuentas { get; set; } 

} 

依赖类:

public class CatalogoDeCuentas  
{ 

    [ForeignKey("CodigoAgrupadorCuentasID")] 
    public int CodigoAgrupadorCuentasID { get; set; } 

    public string text { get; set; } 

} 

的的DbContext类:

public class PolizasDBContext: DbContext 
{ 
     public PolizasDBContext() 
     : base("PolizasDBContext") 
    { 

    } 

     public DbSet<CatalogoDeCuentas> TablaCatalogoDeCuentas { get; set; } 
     public DbSet<CodigoAgrupadorCuentas> TablaCodigoAgrupCuentas { get; set; } 


    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 

     modelBuilder.Entity<CodigoAgrupadorCuentas>() 
      .HasRequired(x => x.CatalogoDeCuentas) 
      .WithRequiredPrincipal(); 
     base.OnModelCreating(modelBuilder); 

    } 

} 

最后,这里的呃ROR图像我得到当我尝试支架CatalogoDeCuentas:

Scaffolding Error

总之,我要的是能够创建一对一的关系,我可以通过自身插入COdigoAgrupadorCuentas,但不CatalogoDeCuentas 。

我一直停留在几个小时这个简单的问题,任何帮助表示赞赏。

回答

0

做更多的研制后,我找到了答案,我的问题。下面的代码是如何结束:

本班:

public class CodigoAgrupadorCuentas 
{ 
    public int CodigoAgrupadorCuentasID { get; set; } 
    public string text { get; set;} 

    public virtual CatalogoDeCuentas CatalogoDeCuentas { get; set; } 

} 

相关类:

public class CatalogoDeCuentas 
{ 

    public int CodigoAgrupadorCuentasID { get; set; } 
    public string description { get; set; } 

    public virtual CodigoAgrupadorCuentas CodigoAgrupadorCuentas { get; set; } 

} 

上下文类:

public class PolizasDBContext: DbContext 
{ 
     public PolizasDBContext() 
     : base("PolizasDBContext") 
    { 

    } 

     public DbSet<CatalogoDeCuentas> TablaCatalogoDeCuentas { get; set; } 
     public DbSet<CodigoAgrupadorCuentas> TablaCodigoAgrupCuentas { get; set; } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 

     modelBuilder.Entity<CodigoAgrupadorCuentas>() 
      .HasOptional(x => x.CatalogoDeCuentas) 
      .WithRequired(x => x.CodigoAgrupadorCuentas); 
     base.OnModelCreating(modelBuilder); 

    } 

} 

我从下面的堆栈答案溢出问题:Entity Framework Code First : Setting up One-To-One foreign key association using Annotations

非常感谢很多读过这个问题的人。

0

嗨,我认为你需要指定public virtual CuentasDelMes CuentasDelMes { get; set; }

这样上面的属性[ForeignKey("CodigoAgrupadorCuentasID")]

public class CatalogoDeCuentas  
{ 
    public int CodigoAgrupadorCuentasID { get; set; } 
    public string text { get; set; } 

    [ForeignKey("CodigoAgrupadorCuentasID")] 
    public virtual CuentasDelMes CuentasDelMes { get; set; } 
} 
+0

嗨约迪,我很抱歉,我犯了一个错误,忘了从我张贴的代码删除CuentaDelMes,这是另一种关系,该实体拥有和我已经测试了早期。 我已更新我的帖子,删除该行代码。 我的代码是完全基于断,我提供的,如果你想查询的例子了链路的末端。在此之前,我已经尝试了其他方法,但尝试将数据插入表时总会遇到问题。 – 2014-09-23 16:50:43

+0

@JorgeDíaz问题仍然存在,但现在在其他班上,我想看看我的答案中的前两行 – 2014-09-23 16:55:56

相关问题