gpt4 book ai didi

c# - EF 4.1 Code First Foreign Key 添加 Extra 列

转载 作者:太空狗 更新时间:2023-10-29 23:34:11 25 4
gpt4 key购买 nike

我有以下两个实体(在许多实体中,但这些给了我问题)

public class StartPoint
{
public int StartPointId { get; set; }
public string Description { get; set; }
public int StartPointNumber { get; set; }
public int StartAreaId { get; set; }
public StartArea StartArea { get; set; }
}

public class StartArea
{
public int StartAreaId { get; set; }
public string Description { get; set; }
public ICollection<StartPoint> StartPoints { get; set; }
}

当允许 EF 创建我的数据库时,它提示我需要关闭级联删除,因为有多个路径,我已按如下方式完成。

        modelBuilder.Entity<StartPoint>()
.HasRequired(x => x.StartArea)
.WithMany()
.HasForeignKey(x => x.StartAreaId)
.WillCascadeOnDelete(false);

问题是,当创建数据库时我得到两个外键,一个叫做 StartAreaId,正如我所期望的,另一个是 StartArea_StartAreaId。仅使用 StartAreaId。为什么以及如何摆脱 StartArea_StartAreaId。如果我删除上下文中的 HasForeignKey 并从实体中删除 StartAreaId,我将获得多个 StartArea_StartAreaId 列,如 StartArea_StartAreaId 和 StartArea_StartAreaId1。我需要做什么来阻止这种情况发生?我只想将 StartAreaId 作为我的外键。

最佳答案

问题是空WithMany:

    modelBuilder.Entity<StartPoint>()
.HasRequired(x => x.StartArea)
.WithMany(y => y.StartPoints)
.HasForeignKey(x => x.StartAreaId)
.WillCascadeOnDelete(false);

关于c# - EF 4.1 Code First Foreign Key 添加 Extra 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6490111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com