你好,我有一个实体“人”。使用“Alias”Value对象
人
public partial class Person : BaseEntity, IAggregateRoot
{
public Alias Alias { get; set; }
//..other properties...
}
PersonConfiguration.cs
entity.OwnsOne(o => o.Alias, a =>
{
a.WithOwner(x=>x.Person);
});
别名
public class Alias :ValueObject
{
public string FirstName { get; private set; }
public string MiddleName { get; private set; }
public string LastName { get; private set; }
}
如果我对Alias上的某个属性进行了更改- Change FirstName -它不会在更改跟踪器中将该Person标记为已更改。我已经用变更跟踪器完成了我的审计。因此,如果我只是更改Alias上的属性,则不会设置上次更新日期和用户。
我能做些什么来弥补吗?
谢谢你。
3条答案
按热度按时间cbeh67ev1#
找到了一种方法-不是很兴奋,但它的工作..
mbjcgjjk2#
值对象应该是不可变的。在创建值对象之后,不应该更改它的属性。
不要更改Alias的属性,而是替换它。
人员
别名(使用
init
setter强制不变性)szqfcxe23#
创建EntityEntry扩展
然后在
EntityState.Unchanged
的情况下调用它