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
}