2012-09-23 16 views
5

Yapılandırmada tanımlanan WillCascadeOnDelete (false) ile ilişkilerin neden her zaman oluşturulan geçişte doğrudur? İşte Varlık Çerçevesi Geçiş çağrısı silme, yapılandırmadaki her zaman bile doğru olur WillCascadeOnDelete (false)

yapılandırma kodunu

public class PartySuppliesConfiguration:EntityTypeConfiguration<PartySupplies> 
{ 
    public PartySuppliesConfiguration() 
    { 
     HasKey(x => x.Id); 
     HasRequired(x=>x.Supplier).WithMany().HasForeignKey(x=>x.SupplierId).WillCascadeOnDelete(false); 
     HasRequired(x => x.Product).WithMany().HasForeignKey(x => x.ProductId).WillCascadeOnDelete(false); 
     HasRequired(x => x.Currency).WithMany().HasForeignKey(x => x.CurrencyId).WillCascadeOnDelete(false); 
     HasRequired(x => x.CreatedUser).WithMany().HasForeignKey(x => x.CreatedUserId).WillCascadeOnDelete(false); 
     Property(x => x.UnitPrice).HasColumnType("Money"); 
    } 
} 

ve burada üretilen göç

public override void Up() 
    { 
     CreateTable(
      "PartySupplies", 
      c => new 
       { 
        Id = c.Int(nullable: false, identity: true), 
        SupplierId = c.Int(nullable: false), 
        ProductId = c.Int(nullable: false), 
        UnitPrice = c.Decimal(nullable: false, precision: 18, scale: 2), 
        CurrencyId = c.Int(nullable: false), 
        FromDate = c.DateTime(nullable: false), 
        ThruDate = c.DateTime(), 
        CreatedUserId = c.Int(nullable: false), 
       }) 
      .PrimaryKey(t => t.Id) 
      .ForeignKey("Parties", t => t.SupplierId, cascadeDelete: true) 
      .ForeignKey("Products", t => t.ProductId, cascadeDelete: true) 
      .ForeignKey("Curencies", t => t.CurrencyId, cascadeDelete: true) 
      .ForeignKey("Users", t => t.CreatedUserId, cascadeDelete: true) 
      .Index(t => t.SupplierId) 
      .Index(t => t.ProductId) 
      .Index(t => t.CurrencyId) 
      .Index(t => t.CreatedUserId); 

    } 
olduğunu

cevap

1

Bu olabilir saçma bir soru olabilir ama DBContext içinde OnModelBuilding yöntemi overriden ve eklemiş modelBuilder.Configurations.Add(new PartySuppliesConfiguration());? PartySuppliers, varlık yapılandırma sınıfınızı geçersiz kılan herhangi bir Veri Açıklaması var mı? Ya da belki de cascadeondelete'nin true olarak ayarlandığı başka bir sınıftan türetilmiştir.

+0

Bugün, 'modelBuilder.Configurations.Add (yeni MyMappingClass()) 'özelliğini OnModelBuilding yöntemine eklemediğimde farkettim. – DDiVita

İlgili konular