首页 > 解决方案 > .NET Core 5.0 EF Migration 添加新的外部列

问题描述

我首先有一个带有 .net core Entity Framework 代码的应用程序。

我有 2 个关系表。altKategori 和 anaKategori

替代类别

public class altKategori
{
    [Key]
    public int idAltKategori { get; set; }

    [Column(TypeName = "Varchar")]
    [StringLength(30)]
    public string adAltKategori { get; set; }

    public int idAnaKategori { get; set; }
    public anaKategori anaKategori { get; set; }
}

类比

public class anaKategori
{
    [Key]
    public int idAnaKategori { get; set; }

    [Column(TypeName = "Varchar")]
    [StringLength(30)]
    public string adAnaKategori { get; set; }

    public List<altKategori> altKategoris { get; set; }
}

还有我的上下文:

public class Context : DbContext
{
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer("server=.\\MSSQLSERVER2019;database=deneme;User ID=deneme1;Password=****;");
    }
    public DbSet<altKategori> altKategoris { get; set; }
    public DbSet<anaKategori> anaKategoris { get; set; }
}

当我开始迁移时,迁移会自动添加 anaKategoriidAnaKategori 列,并添加与该列的关系。

migrationBuilder.CreateTable(
            name: "altKategoris",
            columns: table => new
            {
                idAltKategori = table.Column<int>(type: "int", nullable: false)
                    .Annotation("SqlServer:Identity", "1, 1"),
                adAltKategori = table.Column<string>(type: "Varchar(30)", maxLength: 30, nullable: true),
                idAnaKategori = table.Column<int>(type: "int", nullable: false),
                anaKategoriidAnaKategori = table.Column<int>(type: "int", nullable: true)
            },
            constraints: table =>
            {
                table.PrimaryKey("PK_altKategoris", x => x.idAltKategori);
                table.ForeignKey(
                    name: "FK_altKategoris_anaKategoris_anaKategoriidAnaKategori",
                    column: x => x.anaKategoriidAnaKategori,
                    principalTable: "anaKategoris",
                    principalColumn: "idAnaKategori",
                    onDelete: ReferentialAction.Restrict);
            });

我不想与 anaKategoriidAnaKategori 建立关系。我想与 idAnaKategori 建立关系。我怎样才能?谢谢你的帮助。

标签: asp.net-mvcasp.net-coreentity-framework-coreforeign-keysentity-framework-migrations

解决方案


尝试添加关系属性

public class altKategori
{
    [Key]
    public int idAltKategori { get; set; }

    [Column(TypeName = "Varchar")]
    [StringLength(30)]
    public string adAltKategori { get; set; }

    public int idAnaKategori { get; set; }

    [ForeignKey(nameof(idAnaKategori ))]
    [InverseProperty("altKategoris")]
    public anaKategori anaKategori { get; set; }
}

public class anaKategori
{
    [Key]
    public int idAnaKategori { get; set; }

    [Column(TypeName = "Varchar")]
    [StringLength(30)]
    public string adAnaKategori { get; set; }

   [InverseProperty(nameof(altKategori.anaKategori))]
    public List<altKategori> altKategoris { get; set; }
}

推荐阅读