当我有两个外键时,如何在EntityFramework6中正确设置级联删除



我有下面的例子,我需要有行为:当我删除RoundAssetT时,我不想删除他的assetOccurrences。。。我不知道如何在modelBuilder中设置这种关系。

public class RoundAssetT 
{
[Column(Order = 1), Key, ForeignKey("RoundT")]
public int RoundTId { get; set; }
[Column(Order = 2), Key, ForeignKey("AssetT")]
public int AssetTId { get; set; }
public virtual AssetT AssetT { get; set; }
public virtual RoundT RoundT { get; set; }
public string Name { get; set; }
public ICollection<AssetOccurrenceT> AssetOccurrencesT { get; set; }
}
public class AssetOccurrenceT
{
[Key]
public int Id { get; set; }
[Column(Order = 1), ForeignKey("RoundAssetT")]
public int? RoundTId { get; set; }
[Column(Order = 2), ForeignKey("RoundAssetT")]
public int? AssetTId { get; set; }
public virtual RoundAssetT RoundAssetT { get; set; }
public string NameAOt { get; set; }
}

有人能告诉我如何在实体框架6中建立这种关系吗?

AssetOccurrenceT.RoundAssetT必须是可选的,因为您希望能够在不删除引用AssetOccurrenceT的的情况下删除RoundAssetT

modelBuilder.Entity<AssetOccurrenceT>()
.HasOptional(ao => ao.RoundAssetT)
.WithMany(ra => ra.AssetOccurrencesT);

最新更新