Каскад — нет в entity framework 6

#entity-framework

#сущность-фреймворк

Вопрос:

Я работаю над проектом с entity framework 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 класса миграции, и мне без причины нужно каскадировать класс продукта, я родом из мира nhibernate, где это решается с помощью map с cascade-none

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

но я не могу найти что-то подобное в entity-framework, и я думаю, что мое требование является обычным делом, и я полагаю, что EF6 должен иметь некоторую параметризацию для решения этой проблемы, или я чего-то не понимаю

Комментарии:

1. Я не понимаю вашего вопроса. Возможно, вам следует описать, что вы хотите, не ссылаясь на NHibernate, и показать свой текущий код и описать, как он, по-видимому, делает то, чего вы пытаетесь избежать.

2. Я не знаю, хорош ли перевод, поскольку я пишу на испанском, но я привел пример кода и объяснил, что хочу избежать каскадирования свойства навигации по продукту, и я показываю, как я это сделал в nhibernate, и то же самое я хочу сделать в EF6.

3. Что такое «каскадирование навигации по продукту»? Если вы не хотите, чтобы это было каскадно, почему у вас есть .WillCascadeOnDelete(true) ?

4. При копировании и вставке я забыл удалить WillCascadeOnDelete (true). Будет ли функция cascadeondelete () либо true, либо false, она учитывается только при удалении записи, она ничего не меняет при добавлении или изменении, по крайней мере, так это работает для меня

5. Я до сих пор понятия не имею, что вы подразумеваете под каскадированием. Снова покажите код, рабочий код, а не только этот определяющий код, и скажите, где он работает не так, как вы хотите.