我无法更新导航属性我有两个实体:用户
public class User : Entity
{
public string Username { get; set; }
public string Password { get; set; }
public int? AddressId { get; set; }
public virtual Address Address { get; set; }
}
和地址
public class Address : Entity
{
public string AddressName { get; set; }
public int UserId { get; set; }
public virtual User User { get; set; }
}
当我尝试执行以下操作时:
address.User = user;
地址 userId 更新成功,并且在 commit 方法中,实体状态被修改。但用户 AddressId 不会更新。
这是我的上下文
public DbSet<User> Users { get; set; }
public DbSet<Address> Addresses { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>()
.HasOptional(x=>x.Address)
.WithMany()
.HasForeignKey(x=>x.AddressId)
.WillCascadeOnDelete(false);
base.OnModelCreating(modelBuilder);
}
我正在使用统一框架和通用存储库模式。我试图将所有属性设置为虚拟但没有效果。