[英]How to use custom property name for foreign key column in Entity Framework
由于某种原因,我似乎无法在任何地方找到此信息,但觉得这很常见。 我最初有这个 class:
public class SiteSharingPermission
{
[Required]
public Guid Id { get; set; }
public Guid OrganizationId { get; set; }
public Organization Organization { get; set; }
}
我最近需要修改此列/属性( OrganizationId -> PartnerOrganizationId
),但我在更新外键列属性名称时遇到了迁移问题。
我尝试运行迁移,将向上/向下修改为:
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_SiteSharingPermissions_Organizations_OrganizationId",
table: "SiteSharingPermissions");
migrationBuilder.RenameColumn(
name: "OrganizationId",
table: "SiteSharingPermissions",
newName: "PartnerOrganizationId");
migrationBuilder.AddForeignKey(
name: "FK_SiteSharingPermissions_Organizations_PartnerOrganizationId",
table: "SiteSharingPermissions",
column: "PartnerOrganizationId",
principalTable: "Organizations",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_SiteSharingPermissions_Organizations_PartnerOrganizationId",
table: "SiteSharingPermissions");
migrationBuilder.RenameColumn(
name: "PartnerOrganizationId",
table: "SiteSharingPermissions",
newName: "OrganizationId");
migrationBuilder.AddForeignKey(
name: "FK_SiteSharingPermissions_Organizations_OrganizationId",
table: "SiteSharingPermissions",
column: "OrganizationId",
principalTable: "Organizations",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
}
但是在尝试从该表中获取结果时,我不断收到错误消息:
字段列表中的未知列“s.OrganizationId”
有任何想法吗?
我个人不喜欢对迁移文件进行更改。 而是做类似下面的事情。
public class SiteSharingPermission
{
[Required]
public Guid Id { get; set; }
public Guid PartnerOrganizationId { get; set; }
[ForeignKey("PartnerOrganizationId")]
public Organization Organization { get; set; }
}
您也可以使用 Fluent API 方法来完成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.