我有服務和Lexikon之間的一對一關係,而服務有Lexikon的外鍵。我的服務不需要Lexikon,所以我將LexikonID設爲空。但是,我的Lexikon只能在與服務相關的情況下才能存在,因此我製作了導航屬性[必填]。我使用Code First,因此EF構建了我的數據庫。c# - 實體框架核心層疊刪除一對一關係
public class Service
{
public int ServiceID { get; set; }
//Foreignkey
public int? LexikonID { get; set; }
//Navigation Properties
public Lexikon Lexikon { get; set; }
}
public class Lexikon
{
public int LexikonID { get; set; }
//Navigation Properties
[Required]
public SoftwareService SoftwareService { get; set; }
}
我想表Lexikon自動刪除數據刪除我的服務可惜我不知道如何做到這一點,因爲我是新來的EF。
我想這個代碼的DbContext:
modelBuilder.Entity<SoftwareService>()
.HasOne(l => l.Lexikon)
.WithOne(s => s.SoftwareService)
.HasForeignKey<SoftwareService>(l => l.LexikonID)
.OnDelete(DeleteBehavior.Cascade);
但是當我刪除我的服務表Lexikon的數據仍然會在這。另一方面,當我刪除lexikon時,它會自動刪除很好的服務,但我也希望當我刪除我的服務時,它會發生在我的Lexikon上。
不幸的是我不熟悉OnDelete-Method,所以我希望有人能幫助我。
是的我的數據庫是從我的模型生成的entityframework –
在這種情況下,你應該有約束。沒有什麼更多的了,真的。 –
還有一件事:你將屬性與代碼配置混合在一起,後者需要流行,所以我認爲你需要指出其中一個端點是必需的。 –