EF を使用して db テーブルにマップされた 2 つのクラスがあります。
public class Relation
{
// some properties
public Address MainAddress { get; set; }
}
public class Address
{
// some properties
}
メソッドでは、次のことを行います。
public Relation AddRelation(Relation relation)
{
var dbRelation = this.DbContext.Set<Relation>().Create();
dbRelation.MainAddress = this.DbContext.Set<Address>().Create();
// this one copies properties from one instance to another
this.Copy(relation, dbRelation);
dbRelation.Id = Guid.NewGuid();
dbRelation.MainAddress.Id = Guid.NewGuid();
dbRelation.MainAddress.RelationId = dbRelation.Id;
this.Add(dbRelation);
this.Context.SaveChanges();
// before detaching dbRelation.MainAddress != null
this.Context.Entry<Relation>(dbRelation).State = EntityState.Detached;
// afterwards dbRelation.MainAddress == null
return dbRelation;
}
コンテキストから切り離された dbRelation を使用したい。ただし、Detach の実行後に dbRelation.MainAddress に null が割り当てられます。
私の質問は: なぜ null があるのですか? この動作を変更するにはどうすればよいですか?