2012-11-22 28 views
3

我想知道如何建立一個具有級聯規則的一對多關係「設置爲空」。這裏是我正在使用的兩個實體。 StandradRelay與RelayConfig具有一對多的關係。代碼優先 - 以一對多關係設置級聯規則爲「設置空值」

public class StandardRelay { 
    ... 
    public virtual ICollection<RelayConfig> RelayConfigs { get; set; } 
} 

public class RelayConfig { 
    ... 
    public virtual StandardRelay StandardRelay { get; set; } 
} 

默認情況下,上面的代碼導致的「不採取行動」級聯規則。所以我嘗試使用DbModelBuilder和以下流暢的API。

modelBuilder.Entity<StandardRelay>() 
      .HasMany<RelayConfig>(s => s.RelayConfigs) 
      .WithOptional(r => r.StandardRelay) 
      .WillCascadeOnDelete(false); 

這又導致「不採取行動」的級聯規則。然後我嘗試以下

 modelBuilder.Entity<StandardRelay>() 
        .HasMany<RelayConfig>(s => s.RelayConfigs) 
        .WithOptional(r => r.StandardRelay) 
        .WillCascadeOnDelete(true); 

這導致級聯規則「刪除」

因此,總之我沒有看到任何設置「設置Null」級聯規則的選項。我們如何配置相同的?

回答

1

這是不可能的。

你必須手動處理它。