クエリからロードされているときに、実際のアイテムが ICollection<> 仮想メンバーに追加されるタイミングを判断する方法はありますか?
以下のコードが私の要点を実証できることを願っています!!
public class DbAppointment
{
public DbAppointment()
{
}
public virtual int AppointmentId { get; set; }
public virtual string Subject { get; set; }
public virtual string Body { get; set; }
public virtual DateTime Start { get; set; }
public virtual DateTime End { get; set; }
private ICollection<DbExceptionOcurrence> exceptionOcurrences;
public virtual ICollection<DbExceptionOcurrence> ExceptionOcurrences
{
get { return exceptionOcurrences; }
set
{
exceptionOcurrences = value;
}
}
}
と
public class DbExceptionOcurrence
{
public DbExceptionOcurrence()
{
}
public virtual int ExceptionId { get; set; }
public virtual int AppointmentId { get; set; }
public virtual DateTime ExceptionDate { get; set; }
public virtual DbAppointment DbAppointment { get; set; }
}
これらをロードするためのコードは
Database.SetInitializer(new ContextInitializer());
var db = new Context("EFCodeFirst");
// when this query executes the DbAppointment ExceptionOcurrenes (ICollection) is set
// but for some reason I only see this as an empty collection in the virtual setter DbAppointment
// once the query has completed I can see the ExceptionOcurrences
var result = db.Appointments.Include(a => a.ExceptionOcurrences).ToList();
各項目の DbAppointment ICollection ExceptionOcurrences セッターで、追加のロジックを実行する必要があります。私が抱えている問題は、DbAppointment オブジェクトが既に作成されている場合にのみ、この情報を持っているように見えることです。
ロジックを実行できるように、アイテムがいつ追加されたかを判断する方法はありますか?
乾杯腹筋