Context.Entry(). getdatabasevalvalues()方法不复制实体的子实体
本文关键字:实体 复制 方法 Entry getdatabasevalvalues Context | 更新日期: 2023-09-27 18:14:51
我正在做一个实体框架的WPF项目。我使用Context.Entry().GetDatabaseValues()
方法获取要更新的对象的原始对象值。getdatabasevalues()方法返回内部对象的原始值和空值
如下:
public partial class LabPayments
{
public partial class LabAccount
{
public long ID { get; set; }
public Nullable<long> MaterialID { get; set; }
public Nullable<long> LabID { get; set; }
public Nullable<double> Quantity { get; set; }
public Nullable<System.DateTime> MaterialDate { get; set; }
public Nullable<long> LabMaterialPriceID { get; set; }
public Nullable<decimal> Price { get; set; }
public virtual Lab Lab { get; set; }
public virtual LabMaterial LabMaterial { get; set; }
public virtual LabMaterialPrice LabMaterialPrice { get; set; }
}
返回的虚对象值为空!!
From MSDN:
查询数据库中当前存在的被跟踪实体值的副本。
<一口><子> https://msdn.microsoft.com/en-us/library/system.data.entity.infrastructure.dbentityentry.getdatabasevalues (v = vs.113) . aspx 子>一口>
using (var context = new BloggingContext()) { var blog = context.Blogs.Find(1); var clonedBlog = context.Entry(blog).GetDatabaseValues().ToObject(); }
注意,返回的对象不是实体,也没有被上下文跟踪。返回的对象也没有与其他对象设置任何关系。
https://msdn.microsoft.com/en-us/data/jj592677.aspx <一口><子>子>一口>
GetDatabaseValues
只获得被跟踪实体的值,而不是任何导航属性或集合属性,它们只是关系/关联的表示。这些虚拟属性是对相关实体对象的引用,不会随GetDatabaseValues
返回。