2つのエンティティ間に1対1の関係を確立しようとしていますが、共有キーではなく、独自のインデント列を含みます。EFコード - 共有PK/FKなしで1対0の関係を設定する
私は明示的に明示的な宣言(そう、不要データ注釈や流暢API条項なし)を必要としないものを宣言する規則を次のようではなく、可能な限りやりたい
entites:
public class File
{
public int FileId {get;set;}
//some omitted file properties
public virtual Task Task {get;set;}
}
public class Task
{
public int TaskId {get;set;}
//some omitted task properties
public int FileId {get;set;}
public virtual File File {get;set;}
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<File>().HasOptional(f => f.Task).WithRequired(t => t.File);
base.OnModelCreating(modelBuilder);
}
これは、TaskIdがTasksテーブルのPK列とFK列の両方である奇妙な関係を作成します。どちらが、ファイルIDと同じ値を持つべきだと思いますか? (それは質問です:)
私はどのようにTaskIdに独自の連続値を保持させ、FileIdをFilesテーブルの外部キーにするのですか?
1-0..1の場合、TaskIdプロパティを取り除き、FileIdをPK/FKプロパティにする必要がありますか?
乾杯!
ありがとう、偉大な答え:) – Bartosz