设置EF核心以不为特定的导航属性创建数据库外键

问题描述 投票:3回答:1

考虑实体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

有什么问题
c# entity-framework entity-framework-core ef-migrations
1个回答
1
投票

删除由EF创建的创建的ForeignKey代码。然后执行迁移操作。希望这会帮助你。例如:(如下几行)

                table.ForeignKey(
                    name: "FK_Products_Companies_CompanyId",
                    column: x => x.CompanyId,
                    principalTable: "Companies",
                    principalColumn: "Id",
                    onDelete: ReferentialAction.Cascade);
© www.soinside.com 2019 - 2024. All rights reserved.