对只读属性使用PersistenceSpecification的CheckProperty

本文关键字:CheckProperty PersistenceSpecification 只读属性 | 更新日期: 2023-09-27 18:20:54

在只读属性上使用PersistenceSpecification时,是否可以使用.CheckProperty

例如,一个以Used作为只读属性,以SetAsUsed作为设置属性的方法的类:

public class MyClass
{
    public virtual int Id { get; set; }
    public virtual string Code { get; set; }
    public virtual DateTime? Used { get; private set; }
    public virtual void SetAsUsed()
    {
        Used = DateTime.Now;
    }
}

我想做一个持久性规范,比如:

new PersistenceSpecification<ForgotPasswordRequest>(Session)
    .CheckProperty(x => x.Code, "a@b.com")
    .CheckProperty(x => x.Used, //??
    .VerifyTheMappings();

但不确定如何从这里调用SetAsUsed方法?

对只读属性使用PersistenceSpecification的CheckProperty

在我的脑海中:

new PersistenceSpecification<ForgotPasswordRequest>(Session)
    .CheckProperty(x => x.Code, "a@b.com")
    .CheckProperty(x => x.Used, DateTime.Now, (entity, DateTime?) => entity.SetAsUsed())
    .VerifyTheMappings();