私は以下の2つのクラスを持っています。モデルを変更せずにFluent APIを使用して一対多を宣言するにはどうすればいいですか?
class Donkey
{
public Guid Id { get; set; }
}
class Monkey
{
public Guid Id { get; set; }
public Donkey Donkey { get; set; }
}
ここで、データベースにリレーションが設定されるようにスキーマを設定します。 Fluent APIを使用して、私はこのようなものに行きます。
protected override void OnModelCreating(DbModelBuilder model)
{
base.OnModelCreating(model);
model.HasDefaultSchema("dbo");
...
model.Entity<Monkey>
.HasRequired(_ => _.Donkey)
.WithMany(_ => _.Monkeys)
.Map(_ => _.MapKey("DonkeyId"));
}
の問題は、今、私はロバでサルのリストを宣言に持ってということです。そして、私はそれをしたくありません。私はまだ私のカスタムカラム名を指定する必要があるので、ロバのテーブルにPKを指しているFKを保存する必要があるので、サルは外部キーを使用してロバを指すようにします。
model.Entity<Monkey>.HasRequired(_ => _.Donkey);
したがって、上記のマッピングには欠けています(追加するだけでコンパイルされません)。 ドンキークラスの定義を実際に変更せずに回避する方法はありますか?
パラメータなしで別のオーバーロードを呼び出すだけです。 - WithMany() ' – 2kay
@ 2kayそれは簡単ですか?それはお勧めの方法ですか?どんなドラゴンもありますか?どんなヒントもありがとうございます。 –
ドキュメントによると、はい。刺激された状態で使用され、どんなドラゴンも見たことがない) – 2kay