とプライベートフィールドとカスタムの外部キー列名を設定し、私は次のようなデータモデルを持っている:EFCore
これは素晴らしい作品と私の予想によると、私はId
とBarId
を含むFoo
テーブルを持っています。私のプライベートフィールドBarId
と私のBar
プロパティは、Foo
をデータベースから読み込むと正しくマテリアライズされます。
問題は、自分のプライベートフィールドに名前を付ける方法を見つけて、自分のデータベース列に別の名前を選択することです。私の資産を_barId
と名付け、私のデータベースには私の列名としてBarId
を選択したいと思います。
これは可能ですか?
私は私のFoo
クラス内のフィールドの名前を変更し、指定しようとしている私の私のEntityTypeConfiguration
builder.HasOne(x => x.Bar).WithMany().HasForeignKey("_barId");
で外部キー_barId
を(今、従来の非命名)しかし、これはEFはまだ生成の結果BarId
カラム、Bar
テーブルの外部キーとして使用することはありません。
migrationBuilder.CreateTable(
name: "Foos",
columns: table => new
{
Id = table.Column<int>(nullable: false)
.Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
BarId = table.Column<int>(nullable: true),
_barId = table.Column<int>(nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Foos", x => x.Id);
table.ForeignKey(
name: "FK_Foos_Bars__barId",
column: x => x._barId,
principalTable: "Bars",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
これはまさに私が必要なものです、ありがとう! – Schaemelhout