データベースにルックアップテーブルとデータテーブルがあります。例として性別と人を使用します。したがって、性別テーブルが次のようになっているとしましょう。
Id Code
1 Male
2 Female
人物テーブルは次のようになります。
Id Name GenderId
1 Bob 1
2 Jane 2
私は最初に次のように両方のテーブルをEFコードでモデル化しました。
public class Gender
{
public int Id {get;set;}
public string Code {get;set;}
}
public class Person
{
public int Id {get;set;}
public string Name {get;set;}
public int GenderId {get;set;}
public virtual Gender {get;set;}
}
すでにDBにある人を読んだ場合、問題なくperson.Gender.Codeにアクセスできます。私がこれを行う場合:
var person = new Person
{
Name = "Bob",
GenderId = 1,
};
context.People.Add(person);
context.SaveChanges();
var code = person.Gender.Code;
その後、正しく保存されますが、性別がnullであるため、最後の行で失敗します。次に、新しいコンテキストを開いて保存されたエンティティをロードすると、最後の行は正常に機能します。DBからエンティティをロードしたかのように、保存直後に性別にアクセスできる方法はありますか?