_iUnitOfWork.Set<EnterpriseUser>().SingleOrDefault(u => u.UserId == CurUser.UserId);
有时候返回的是代理实体有时候不是。
刚开始以为是代理类被关闭了。
出现这个问题是因为当前的实体被cache了,解决办法
var user = _iUnitOfWork.Set<EnterpriseUser>().AsNoTracking().SingleOrDefault(u => u.UserId == CurUser.UserId);
只要加上AsNoTracking()就可以了。