实体框架数据持久性

时间:2020-06-09 13:45:22

标签: entity-framework

我有2个实体A和B。它们没有关联。

public partial class A
{
   public string code { get; set; }
   public string description { get; set; }
}

对于实体B,我已经通过使用部分类对其进行了扩展,以便放置指向实体A的导航属性:

public partial class B 
{
   public A customExtProperty{ get; set; }
}

现在,我有一个类型为B的对象c,并对其执行以下语句(我更新了一些属性):

public void UpdateCustomProperties(B c)
{
    c.customExtProperty = dbContext.A.FirstOrDefault(x => x.code == "9999");
    c.customExtProperty.code = myCutomCode;
    c.customExtProperty.description = myCustomDescription;
}

考虑到以上代码段,我对此有以下疑问:

  • 代码和描述字段上的更改是否适用于模型?还是仅应用于对象c本身?
  • 如果从另一个进程中执行dbContext.A.FirstOrDefault(x => x.code ==“ 9999”),我是否将分别使用上述值myCutomCode和myCustomDescription更新代码和描述字段?

1 个答案:

答案 0 :(得分:1)

部分类,以便放置指向实体A的导航属性:

在部分类定义中定义的导航属性没有什么不同。这是常规的导航属性。

代码和描述字段上的更改是否适用于模型?还是仅应用于对象c本身?

如果DbContext的c为tracked,则当您调用DbContext.SaveChanges()时,对c的更改将应用​​于数据库。之后,更改将对其他进程和其他DbContext实例可见。

相关问题