Передайте два параметра в конструктор при использовании valueConversion - PullRequest
2 голосов
/ 08 марта 2020

У меня есть ValueObject:

public class RoleName : ValueObject<RoleName>
{
    public string RoleNameFa { get; private set; }
    public string RoleNameEn { get; private set; }

    public RoleName(string RoleNameFa, string RoleNameEn)
    {
        ValidateInvariant();
        this.RoleNameFa = RoleNameFa;
        this.RoleNameEn = RoleNameEn;
    }

    protected override IEnumerable<object> GetEqualityComponents()
    {
        yield return RoleNameFa;
        yield return RoleNameEn;
    }

    public void ValidateInvariant()
    {
        if (string.IsNullOrWhiteSpace(RoleNameFa))
            throw new ArgumentException("The RoleNameFa Cannot be Null", nameof(RoleNameFa));

        if (Regex.IsMatch(RoleNameFa, @"^[\u0600-\u06FF]+$"))
            throw new ArgumentException("The RoleNameFa Mustbe the Persian", nameof(RoleNameEn));

        if (Regex.IsMatch(RoleNameEn, @"^[\u0000-\u007F]+$"))
            throw new ArgumentException("The RoleNameEn Mustbe the English", nameof(RoleNameEn));

        if (string.IsNullOrWhiteSpace(RoleNameEn))
            throw new ArgumentException("The RoleNameEn Cannot be Null", nameof(RoleNameEn));
    }
}

, и мне нужно использовать HasConversion в конфигурации:

public class RoleConfiguration : IEntityTypeConfiguration<Role>
{
    public void Configure(EntityTypeBuilder<Role> builder)
    {
        builder.Property(x => x.RoleName).HasConversion(x => x.RoleNameFa , c => new RoleName(c));
    }
}

, но я должен передать два параметра конструктору RoleName. Как я могу это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...