Warum Beziehungen mit WillCascadeOnDelete (false) in der Konfiguration definiert sind, sind immer wahr in der generierten Migration? HierEntity Framework Migration Kaskadenlöschung ist immer wahr sogar WillCascadeOnDelete (false) in der Konfiguration
ist der Konfigurationscode
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");
}
}
und hier ist die erzeugte Migration
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);
}
Dies ist mir heute aufgefallen, als ich die 'modelBuilder.Configurations.Add (new MyMappingClass())' nicht zur OnModelBuilding-Methode hinzugefügt habe. – DDiVita