gpt4 book ai didi

asp.net-core - 如何使用 EFCore Code First Migrations 指定复合主键

转载 作者:行者123 更新时间:2023-12-03 16:05:37 31 4
gpt4 key购买 nike

我正在使用 Asp.Net Core 2.1、Mvc、c#、EF Core with Code First 和 Migrations。

我正在尝试构建一个在 Migration.Up() 中具有复合主键的表。方法:

migrationBuilder.CreateTable(
name: "TagValueAttributes",
columns: table => new {
TagValueID = table.Column<Int64>(nullable: false),
Identifier = table.Column<string>(nullable: false, unicode: true, maxLength: 256),
Value = table.Column<string>(nullable: true, unicode: true, maxLength: 2048)
},
constraints: table => {
table.PrimaryKey(
name: "PK_TagValueAttributes",
columns: // what goes here???
)
}
);

我不知道为 columns 指定什么 constraints 的参数 table.PrimaryKey()称呼。我要专栏 TagValueID , 和 Identifier形成复合键。

我需要为 columns 指定什么?范围?

最佳答案

为什么要把这个放在Migration.Up()方法 ?
您可以通过您的 DbContext 中的 Fluent API 执行此操作。通过覆盖 OnModelCreating()方法 :

protected override void OnModelCreating(ModelBuilder builder)
{
builder.Entity<TagValueAttributes>().HasKey(t => new { t.TagValueID, t.Identifier });
}
如果你想把它保存在 Migration.Up()然后做:
table.PrimaryKey(
name: "PK_TagValueAttributes",
columns: t => new { t.Identifier, t.TagValueID }
);

关于asp.net-core - 如何使用 EFCore Code First Migrations 指定复合主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51993903/

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