首页 > 解决方案 > 实体框架6中的Cascade-none

问题描述

我正在使用实体框架 6 开发一个项目,但我在映射问题上遇到了一些问题,我给你留了一个代码示例

public class Product
{
    public Guid Id { get; set; }
    public string Descripcion { get; set; }

    public ICollection<ProductPrice> ProductPrices { get; set; }

    public override string ToString()
    {
        return Descripcion;
    }
}

public class ProductPrice
{
    public Guid Id { get; set; }
    public Guid ProductId { get; set; }

    public virtual Product Product { get; set; }
}
public class MapPreciosProveedor : EntityTypeConfiguration<ProductPrice>
{
    public MapPreciosProveedor()
    {
        this.ToTable("Inventory_prices", "dbo");
        this.HasKey<Guid>(s => s.Id);
        this.HasKey(e => e.Id);

        this.Property(e => e.Id)
            .HasColumnName("id")
            .IsRequired()
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

        this.Property(e => e.ProductId)
            .HasColumnName("productId")
            .IsRequired();

        this.HasRequired<Product>(s => s.Product)
           .WithMany(g => g.ProductPrices)
           .HasForeignKey<Guid>(s => s.ProductId)
           .WillCascadeOnDelete(true);
    }
}

我的问题在 ProductPrice 类中,保存时我使用通用存储库,并且我利用了迁移类的 addOrUpdate 方法,并且我不需要级联 Product 类,我来自 nhibernate 世界,在那里由 map 与 cascade-none 解决

<many-to-one class = "Product" column = "productId" cascade = "none" />

但我在实体框架中找不到类似的东西,我认为我的要求是常见的,我想 EF6 必须有一些参数化来解决这个问题,或者我不理解

标签: entity-framework

解决方案


推荐阅读