更新到Entity Framework 6后,多对多关系会产生错误

时间:2014-07-29 13:49:30

标签: asp.net-mvc entity-framework entity-framework-6

我有“多对多的关系”,它在本地机器上完美运行,直到移动到服务器为止。在移动期间,抛出了运行时错误。在升级到Entity Framework 6后,它运行起来了,但是......“多对多关系”中的一个被打破了。

模型有很多属性,它们看起来像这样:

public partial class CartItem
{
    public int id { get; set; }
    public virtual ICollection<ProductOptionValue> ProductOptionValues { get; set; }
}
public class CartItemMapping : EntityTypeConfiguration<CartItem>
{
    public CartItemMapping() : base()
    {
        this.HasMany(e => e.ProductOptionValues).WithMany(e => e.CartItems)
            .Map(e => e.ToTable("CartItemOptions").MapLeftKey("productOptionValueId").MapRightKey("cartItemId"));
    }
}

public class ProductOptionValue
{
    public int id { get; set; }
    public virtual ICollection<CartItem> CartItems { get; set; }
}
public class ProductOptionValueMapping : EntityTypeConfiguration<ProductOptionValue>
{
    public ProductOptionValueMapping() : base()
    {
        this.HasMany(e => e.CartItems).WithMany(e => e.ProductOptionValues)
            .Map(e => e.ToTable("CartItemOptions").MapLeftKey("cartItemId").MapRightKey("productOptionValueId"));
    }
}

获取之前保存的CartItems时,ProductOptionValues的count = 0,无法保存新的。

我在另一个论坛上发现了这个问题,只有答案是,这种关系在更新后根本不起作用。但也许有解决方案?

或者可能知道为什么在使用Entity Framework 5的服务器上抛出运行时错误?

修改

错误:

  

INSERT语句与FOREIGN KEY约束冲突   “FK_CartItem_CartItemOptions”。冲突发生在数据库中   “database”,表“dbo.CartItems”,列'id'。声明一直如此   终止。

     

保存不公开外键的实体时发生错误   他们关系的属性。 EntityEntries属性将   返回null,因为无法将单个实体标识为源   例外。可以在保存时处理异常   通过在实体类型中公开外键属性更容易。有关详细信息,请参阅InnerException。

0 个答案:

没有答案
相关问题