Нужно загрузить ассоциацию один в один ко многим - PullRequest
0 голосов
/ 16 апреля 2019

Мне нужно загрузить список cart_row класса AssociationAuxcart из корзины.

я пробовал:

ctx.Entry(cart.association).Collection(x => x.cart_rows).Load();

но это дает мне следующее исключение, еще не гуглил.

Исходный запрос для этого EntityCollection или EntityReference не может быть возвращен, когда связанный объект находится либо в добавленном состоянии, либо в отключенном состоянии и не был первоначально получен с помощью параметра слияния NoTracking

Вот мои разные сущности

public class cart
{
    public long? id { get; set; }
    ...
    public AssociationsCartAux associations { get; set; }
}

public class AssociationsCartAux : PrestaShopEntity

{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public long? id_virtual { get; set; }
    public List<cart_row> cart_rows { get; set; }

    public AssociationsCartAux()
    {
        this.cart_rows = new List<cart_row>();
    }
}

public class cart_row
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public long? id_cartRow_fictive { get; set; }
    public long? id_product { get; set; }
    public int quantity { get; set; }
}

и мой контекст БД:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<cart>()
        .HasRequired(s => s.associations)
        .WithRequiredPrincipal(ad => ad.cart);

    modelBuilder.Entity<cart_row>()
        .HasRequired(cr => cr.AssociationsCartAux)
        .WithMany(c => c.cart_rows)
        .HasForeignKey(cr => cr.id_AssocCartAux);

    modelBuilder.Entity<AssociationsCartAux>().ToTable("carts");
}
...