首页 > 解决方案 > .NetCore3.1 中的导航属性返回空值

问题描述

我将模型保存在数据库中,之后我需要向用户发送通知。

例如,我正在保存一个用户地址,在将地址保存在数据库中后,我需要向用户发送通知,地址已添加到消息中,我需要一些用户属性,这些属性应该可以从地址导航。

Entities
-----------------
public class User{
 public int Id {get; set;}
 public ICollection<Address> Users {get; set;}
}

public class Address{
 public int Id {get; set;}
 public string Name {get; set;}
 public int UserId {get; set;}
 public virtual User User {get; set;}
}
Address address = new Address(){name = "abc"};
unitOfWork.Repository.Add(address)
unitOfWork.Commit()
var savedAddress =  unitOfWork.Repository.GetById(address.Id); <---- User Navigation property return null

但是,如果我尝试查找其他地址,则用户导航属性不为空,当我保存地址时它唯一的空,然后立即获取保存的地址用户导航属性为空。

延迟加载已启用。

标签: .net-coreentity-framework-coreasp.net-core-3.1

解决方案


尝试这个:

Address address = new Address {Name = "abc", UserId=<existing user id> };

顺便修复一下名字:

public class User{
 public int Id {get; set;}
 public ICollection<Address> Addresses {get; set;}
}

推荐阅读