我的项目中有两个实体:
public class A
{
public int Id { get; set; }
public DateTime CreatedDateTime { get; set; }
public virtual B B { get; set; }
}
public class B
{
public int Id { get; set; }
public Nullable<DateTime> LastAliveTime { get; set; }
public virtual ICollection<A> A { get; set; }
}
我正在使用工作单元库模式和Entity Framework,我执行以下操作:
stirng id = "abc";
var aService = unitOfWork.GetRepository<A>();
var ins = aService.FindBy(a => a.Id == id);
我知道可以更新 ins 并保存 dbcontext 。
我需要知道的是:
ins.B.LastAliveTime = DateTime.UtcNow;
这项工作总是如此吗?
这是更新B实体的LastAliveTime的正确方法,还是应该像下面那样初始化另一个存储库?
var bService = unitOfWork.GetRepository<B>();
答案 0 :(得分:1)
你不需要那个。
您必须使用预先加载(Include(x=>x.B)
)或延迟加载。那你就不会有任何问题。