2015-09-20 1 views
1

У меня есть эти модели CodeFirst Entityотношение один к одному ленивых нагрузки не работает с #

public partial class Initial 
{ 

    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int Id { get; set; } 

    // more Properties 

    [Column(TypeName = "ntext")] 
    [Required] 
    public string CUD { get; set; } 

    [Key] 
    [DatabaseGenerated(DatabaseGeneratedOption.None)] 
    public int Cuenta_Id { get; set; } 

    public virtual Cuentas Cuenta { get; set; } 
} 

public partial class Cuentas 
{ 
    public Cuentas() 
    { 
     //hash set for collection properties 
    } 

    public int Id { get; set; } 

    [Required] 
    [StringLength(50)] 
    public string CUI { get; set; } 

    //properties 


    public virtual Initial Initial { get; set; } 

    public virtual Matriz Matriz { get; set; } 

} 

Initial класс и Matriz являются два одинаковых объекта и любой из тех, которые загружены когда я исполню:

Cuentas account = context.CuentasCtxt.Find(1); 
account.Initial.Counter++;// this give a null reference because 'Initial' is not loaded 

все остальные свойства хорошо загружены, но эти две особенности - это две сущности, состоящие в том, что они имеют взаимное отношение с Cuentas. Объект

SQL-схема выглядит следующим образом sql schema

EDIT: Это как Entity Framework Codefirst из базы данных сделали отношения

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     base.OnModelCreating(modelBuilder); 

     modelBuilder.Entity<Cuentas>() 
      .HasOptional(e => e.Inicial) 
      .WithRequired(e => e.Cuenta); 

     modelBuilder.Entity<Cuentas>() 
      .HasOptional(e => e.Matriz) 
      .WithRequired(e => e.Cuenta); 

     modelBuilder.Entity<Cuentas>() 
      .HasMany(e => e.Movimientos) 
      .WithRequired(e => e.Cuenta) 
      .HasForeignKey(e => e.Cuenta_Id) 
      .WillCascadeOnDelete(false); 
    } 
+0

Включили ли вы ленивую загрузку? Работает ли Lazy Loading для других свойств в том же контексте? – StriplingWarrior

+0

На самом деле это была моя первая догадка, но это было прекрасно, чтобы быть уверенным, что я установил Lazy load в true в конструкторе контекста и все еще не работает –

+0

Я добавил несколько подробностей о моих отношениях codefirst. Я надеюсь, что это поможет –

ответ

0

Я нашел ошибку, после серьезных часов fustration, я нашел пользователь тот же CUI, которому не присвоен объект Initial, поэтому он имеет значение null.