【问题标题】:how to apply cascade-delete on foreign key in entity framework如何在实体框架中对外键应用级联删除
【发布时间】:2019-09-25 20:04:02
【问题描述】:

我创建了两个名为 Customer 和 destination 的表格。 CustomerCode 是 Customer 中的主键,外键是 Destination。当我删除客户时,目的地将被删除。

public class tblCustomerDetails
{
    [Key]
    public string CustomerCode { get; set; }
    public string CustomerName { get; set; }
}

public class tblDestinationDetails
{
    [Key]
    public string DestinationCode { get; set; }
    [ForeignKey("tblCustomerDetails")]
    public string CustomerCode { get; set; }
    public tblCustomerDetails tblCustomerDetails { get; set; }
    public string DestinationName { get; set; }
}

public class tblOrderDetails
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    [Key]
    public int SrNo { get; set; }

    public int OrderNo { get; set; }

    [ForeignKey("tblCustomerDetails")]
    public string CustomerCode { get; set; }
    public tblCustomerDetails tblCustomerDetails { get; set; }

    [ForeignKey("tblDestinationDetails")]
    public string DestinationCode { get; set; }
    public tblDestinationDetails tblDestinationDetails { get; set; }
}

【问题讨论】:

标签: c# entity-framework-6 cascading-deletes


【解决方案1】:

你可能的模型是

public class Customer 
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int CustomerCode { get; set; }
    public virtual Destination destination { get; set; }//relationship with Destination
}
public class Destination 
{

    public virtual Customer customer { get; set; }//relationship with Customer 
    [Key, ForeignKey("User")]
    public int CustomerCode { get; set; }
}

您需要使用fluent API并在DBContext中添加以下代码

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{   
    modelBuilder.Entity<Customer>()
        .HasOptional(d => d.Destination)
        .WithOptionalDependent()
        .WillCascadeOnDelete(true);
}

【讨论】:

    猜你喜欢
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多