簡體   English   中英

將 EF 核心設置為不為特定導航屬性創建數據庫外鍵

[英]Setup EF core to not create Database Foreign Key for specific Navigation Property

考慮實體CompanyProduct

public class Company
{
    prop Guid Id {get; set;}
}

public class Product
{
    prop Guid CompanyId {get; set;}
    prop Company Company {get; set;}
}

創建遷移時,我希望從ProductCompany的關系不要在數據庫中創建外鍵約束。

我了解不創建外鍵的所有問題,我總是創建外鍵,但在一個特定問題中,我想避免使用外鍵。 怎么做?

說明:這是一些診斷數據,所以我需要保留所有有助於診斷的信息,即使無法插入主實體。 如果插入,我們很樂意使用 Navigation 屬性導航到它。 如果失敗,我們可以回到原始數據源,看看這個特定Company有什么問題

刪除EF創建的已創建的ForeignKey代碼。 然后執行遷移操作。 希望這會幫助你。 例如:(一些像下面這樣的行)

                table.ForeignKey(
                    name: "FK_Products_Companies_CompanyId",
                    column: x => x.CompanyId,
                    principalTable: "Companies",
                    principalColumn: "Id",
                    onDelete: ReferentialAction.Cascade);

暫無
暫無

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

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