私は2つのエンテインを持っています、プロスペクトと人は、私がしようとしているのはProspectTableのプライマリキーとして、そしてPersonIDの外部キーとして、 Ideaは、私のProspectエンティティでPersonIDを必要とせずに、両方のエンティティに同じIDを使用しています。見込み客がデータベースに保存されているとき、Prospectエンティティにこのプロパティがない場合でもPersonIDを保存しようとしますが、ef coreがこの種の関係をサポートしているかどうかを知りたいと思います。EFコア:同時にプライマリキーと外部キーとしてIDを使用
私のモデルビルダーは次のとおりです。 、
INSERT INTO [Prospects] ([ID], [PersonID]) VALUES (@p421, @p422)
PersonDTO:
modelBuilder.Entity<ProspectDto>(builder => { builder.ToTable("Prospects"); builder.HasKey(prospect => prospect.ID); });
modelBuilder.Entity<PersonDto>(builder => { builder.HasOne(p => p.Prospect).WithOne().HasForeignKey<ProspectDto>(pe => pe.ID); });
は、ここでデータベース上で実行されているものです
public class PersonDto : DtoBase
{
public PersonDto()
{
}
public ProspectDto Prospect { get; set; }
}
ProspectDTO:
public class ProspectDto : DtoBase
{
public ProspectDto()
{
}
public PersonDto Person { get; set; } = new PersonDto();
}
DtoBase:
public abstract class DtoBase
{
public Guid ID { get; protected set; }
}
ありがとう。
'ProspectDto'と' PersonDto'クラスの宣言を表示してください(あなたは質問に関係ないデータフィールドをスキップすることができます)。 – Dmitry
@Dmitry更新されました –
うーん、 'ID'フィールドは見えません...' DtoBase'に存在するかもしれないと思います...あなたのモデルに関するすべての情報を質問に関連させてくれますか? – Dmitry