C# 如果更改类中父实体的导航属性,是否需要手动更改外键?

C# 如果更改类中父实体的导航属性,是否需要手动更改外键?,c#,database,entity-framework,code-first,C#,Database,Entity Framework,Code First,我有一个实体 public class ChildEntity { /// <summary> /// Foreign key for this entity. /// </summary> public virtual int ParentId { get; set; } /// <summary> /// Navigation Property for this entity. /// </s

我有一个
实体

public class ChildEntity
{
    /// <summary>
    /// Foreign key for this entity.
    /// </summary>
    public virtual int ParentId { get; set; }

    /// <summary>
    /// Navigation Property for this entity.
    /// </summary>
    public virtual TParentEntity Parent { get; set; }
}
公共类子实体
{
/// 
///此实体的外键。
/// 
公共虚拟int ParentId{get;set;}
/// 
///此实体的导航属性。
/// 
公共虚拟TParentEntity父项{get;set;}
}
如果我正在将数据库中的
Parent
属性更改为不同的
ParentEntity
(更新
子实体的
集合
),那么我是否需要手动将
ParentId
从一个父实体更改为另一个

谢谢

如果更改实体的导航属性,将对数据库中的外键列进行相应的更改

资料来源:

下面是观察上述行为的示例代码

using (var context = new Context())
{
    var child = new ChildEntity();
    child.Parent = new TParentEntity();
    context.Add(child);

    context.SaveChanges();
    Console.WriteLine(child.ParentId); // ParentId == 1

    child.Parent = new TParentEntity();
    Console.WriteLine(child.ParentId); // ParentId == 1

    context.SaveChanges();
    Console.WriteLine(child.ParentId); // ParentId == 2
}