dapper, как сопоставить методы свойств частного набора - PullRequest
0 голосов
/ 17 июня 2020

Я знаю, что этот общий вопрос решается во многих областях, но не для этого конкретного c сценария. У меня есть следующие объекты

    public class AuditRecord
    {
        public long Id {get; private set; }
        public Collaborator IssuedBy { get; private set; }
    }
    public class Collaborator
    {
        public Collaborator(Guid userId, string name, string email)
        {
            UserId = userId;
            Name = name;
            Email = email;
        }

        public Guid UserId { get; }

        public string Name { get; }

        public string Email { get; }
    }

Как вы можете видеть, свойство IssuedBy имеет частный установщик. Есть ли собственный способ Dapper справиться с этим? Типичные примеры передачи fun c, в котором есть части, не будут работать, потому что они закрыты.

            var resultData = await _connection.QueryAsync<AuditRecord, Collaborator, AuditRecord>(AUDIT_INSERT_SQL,
                (o, collaborator) =>
                {
                    o.IssuedBy = collaborator;//Error   CS0272  The property or indexer 'AuditRecord.IssuedBy' cannot be used in this context because the set accessor is inaccessible

                    return o;
                });

раскрытие свойства как publi c или добавление метода, который делает то же самое, по существу нарушает инкапсуляцию правила.

...