c# – EF代码首先级联删除和更新?
我的实体是这些:
public class Customer { public Customer() { Invoices = new List<Invoice>(); Payments = new List<Payment>(); } public int ID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public IList<Payment> Payments { get; set; } } public class Payment { public int ID { get; set; } public int CustomerID { get; set; } public decimal CreditPrice { get; set; } public decimal DebitPrice { get; set; } public DateTime PaymentDate { get; set; } [ForeignKey("CustomerID")] public Customer Customer { get; set; } } 这是我的上下文: public class AccountingContext : DbContext,IDisposable { public DbSet<Customer> Customers { get; set; } public DbSet<Payment> Payments { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); modelBuilder.Entity<Payment>() .HasRequired(s => s.Customer) .WillCascadeOnDelete(); base.OnModelCreating(modelBuilder); } } 我在WillCascadeOnDelete()中收到此错误:
我想删除客户级联付款(只要客户被删除).我如何才能在EF代码中实现这一点? 我也想使用级联更新. 解决方法
描述
您需要在您的上下文中配置modelBuilder. 样品 public class AccountingContext : DbContext,IDisposable { public DbSet<Customer> Customers { get; set; } public DbSet<Payment> Payments { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); modelBuilder.Entity<Payment>() .HasRequired(s => s.Customer) .WithMany() .WillCascadeOnDelete(true); base.OnModelCreating(modelBuilder); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |