簡體   English   中英

防止在實體框架中保存子對象

[英]Prevent saving of child objects in Entity Framework

使用實體框架並具有以下類:

public class TestClass{

    [Key]
    public int id {get; set;}
    public int foreignId {get; set;}

    [ForeignKey("foreignId")
    public MyObject myObject {get; set;}
}

對於此類,我想保存“ TestClass”,但是實體框架首先嘗試保存/創建不需要保存的“ myObject”,因為它只是一個引用。 在某些論壇(請在此處輸入鏈接描述 )中,我讀到我必須在保存之前將myObject顯式設置為“ null”,但是在我看來,這很煩人。

因此,我想問是否可以添加到myObject的注釋或諸如“ IgnoreOnSave”之類的東西?

[ForeignKey("foreignId", "ignoreOnSave")]
public MyObject myObject {get; set;}

更新資料

[NotMapped]為我做了:

[NotMapped]
[ForeignKey("foreignId")]
public MyObject myObject {get; set;}

使用此屬性,我可以使用外部子對象加載該對象,但是在保存子對象時,“ myObject”將被忽略。 我只需要在代碼中確保將“ myObject”的ID復制到主對象的外鍵屬性。

另外(我正在創建一個Web-Api-Solution)我在外鍵屬性中添加了一個[JsonIgnore] ,以便擁有干凈的界面。

更新資料

使用[NotMapped]導致linq表達式“ .include”不再可用於相應的屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM