C# 无法检测EF Core中阴影属性的更改

C# 无法检测EF Core中阴影属性的更改,c#,entity-framework-core,C#,Entity Framework Core,我正在尝试获取属性的更改,但有一个问题,CurrentValue和OriginalValue都为空,是否有阴影属性的替代方案 var entities = _context .ChangeTracker .Entries() .ToArray(); foreach (var entity in entities) { foreach (var property in entity.Properties) { if (property.Me

我正在尝试获取属性的更改,但有一个问题,
CurrentValue
OriginalValue
都为空,是否有阴影属性的替代方案

var entities = _context
    .ChangeTracker
    .Entries()
    .ToArray();

foreach (var entity in entities)
{
    foreach (var property in entity.Properties)
    {
        if (property.Metadata.IsShadowProperty())
        {
            var newValue = property.CurrentValue;  // null
            var oldValue = property.OriginalValue; // null
        }
    }
}
实体类:

public class ParentEntity
{
    public string Id { get; set; }
    public OwnedEntity SomeEntity { get; set; }
    private string _name;

    public ParentEntity(string id, string name)
    {
        Id = id;
        _name = name;
        SomeEntity = new OwnedEntity();
    }
}

public class OwnedEntity 
{
    public string Id { get; set; }
    public string Name { get; set; }

    public OwnedEntity()
    {
        Id = Guid.NewGuid().ToString();
        Name = "Some Name";
    }
}
配置:

public void Configure(EntityTypeBuilder<ParentEntity> builder)
{
    builder.HasPartitionKey(x => x.PartitionKey);

    builder.Property("_name").ToJsonProperty("name");
    builder.Property(x => x.Id).ToJsonProperty("id");

    builder.OwnsOne(x => x.SomeEntity, x =>
        {
            x.ToJsonProperty("someEntity");
            x.Property(x => x.Id).ToJsonProperty("id");
            x.Property(x => x.Name).ToJsonProperty("name");
        });

    builder.HasKey(x => x.Id);

    builder.HasDiscriminator();

    builder.ToContainer("container1");
}
public void配置(EntityTypeBuilder)
{
HasPartitionKey(x=>x.PartitionKey);
建筑商财产(“名称”)。Tojson财产(“名称”);
builder.Property(x=>x.Id).ToJsonProperty(“Id”);
builder.OwnsOne(x=>x.SomeEntity,x=>
{
x、 ToJsonProperty(“某实体”);
x、 属性(x=>x.Id);
x、 属性(x=>x.Name);
});
HasKey(x=>x.Id);
builder.HasDiscriminator();
建造商对集装箱(“集装箱1”);
}

你能用shadow字段显示实体类吗?@vernou当然,已更新。我们谈论的是什么shadow属性?因为我看到的只是“拥有的实体”,没有影子属性,除了可能是所有者的“FK”,但它不应该变异(因为它也是拥有的实体的“PK”)。另外,很高兴看到引入跟踪条目的代码-是从数据库加载,还是附加断开连接的实体等。@IvanStoev for“OwnedEntity”属性实例“property.Metadata.IsShadowProperty()”返回true。我的问题是为什么CurrentValue、OriginalValue对于该属性为空!可以显示阴影属性名称吗?