我想这样做,但是entry.Entity.User是NULL。
export interface TbArr {
id:number;
date:any;
}
我可以用
显式加载用户var entry = this.myContext.Verifications.Add(new DbVerification()
{
UserId = model.UserId,
Created = DateTimeOffset.UtcNow,
Method = model.VerificationType
});
entry.Entity.User.FirstName = "peanut";
但是我可以在某种程度上包含entry.Entity.User对象而不这样做吗?
就像我可以做到这一点
this.myContext.Users.First(x => x.Id == model.UserId)
要在实体中包含用户对象,无论如何都要使用context.Verifications.Add以类似的方式包含它,如上所示。
答案 0 :(得分:2)
您可以做的一件事是使用 明确加载 :
var entry = this.myContext.Verifications.Add(new DbVerification()
{
UserId = model.UserId,
Created = DateTimeOffset.UtcNow,
Method = model.VerificationType
});
context.Entry(entry.Entity).Reference(p => p.User).Load();// Add this line
entry.Entity.User.FirstName = "peanut";
但最后如果你没有内存中的用户实体实例,你将需要进行往返访问以获取用户并进行更改,因此没有太大的差异比较有了这个:
var entry = this.myContext.Verifications.Add(new DbVerification()
{
UserId = model.UserId,
Created = DateTimeOffset.UtcNow,
Method = model.VerificationType
});
var user=this.myContext.Users.First(x => x.Id == model.UserId);
user.FirstName = "peanut";
myContext.SaveChanges();