У меня есть сущность, которая содержит объекты-значения следующим образом. Когда я пытаюсь извлечь запись из базы данных, я получаю сообщение об ошибке Ошибка анализа столбца 14 (Rg = 16318057X - Строка)
Объект значения состоит из двух полей. Как я могу это исправить?
public class Rg : ValueObject<Rg>
{
public string NumeroRg { get; protected set; }
public string EstadoEmissor { get; protected set; }
protected Rg() : base() { }
private Rg(string numeroRg, string estadoEmissor) : base()
{
NumeroRg = (numeroRg == null ? numeroRg : numeroRg.RemoverMascara().Replace(" ", "").ToUpper());
EstadoEmissor = (estadoEmissor == null ? estadoEmissor : estadoEmissor.Trim().ToUpper());
}
public static Rg Factory(string numeroRg, string estadoEmissor)
{
return new Rg(numeroRg, estadoEmissor);
}
....
omitted for brevity
....
}
public class Lojista : Entity
{
public TipoPessoa TipoPessoa { get; private set; }
public string Nome { get; private set; }
public string Apelido { get; private set; }
public Cnpj Cnpj { get; private set; }
public InscricaoEstadual InscricaoEstadual { get; private set; }
public string InscricaoMunicipal { get; private set; }
public Cpf Cpf { get; private set; }
public Rg Rg { get; private set; }
protected Pessoa() { }
....
omitted for brevity
....
}
Мои данные сохраняются так:
| Id | Status | CadastradoPor | DataCadastro | ModificadoPor | DataModificacao | TipoPessoa | Nome | Apelido | Cnpj | InscricaoEstadual | EstadoEmissorInscricaoEstadual | InscricaoMunicipal | Cpf | Rg | EstadoEmissorRg |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
И мой репозиторий выглядит так:
public override async Task<Lojista> ObterPorIdAsync(Guid id)
{
try
{
DbConnection conn = DbContext.Database.GetDbConnection();
const string sql = @"SELECT Lojistas.*, LojistasEmails.*, LojistasEnderecos.*, LojistasTelefones.*
FROM Lojistas
LEFT JOIN LojistasEmails ON Lojistas.Id = LojistasEmails.LojistaId AND LojistasEmails.Status <> @pStatus
LEFT JOIN LojistasEnderecos ON Lojistas.Id = LojistasEnderecos.LojistaId AND LojistasEnderecos.Status <> @pStatus
LEFT JOIN LojistasTelefones ON Lojistas.Id = LojistasTelefones.LojistaId AND LojistasTelefones.Status <> @pStatus
WHERE (Lojistas.Id = @pId)";
IEnumerable<Lojista> queryResult = await conn.QueryAsync<Lojista, LojistaEmail, LojistaEndereco, LojistaTelefone, Lojista>(
sql, (lojista, email, endereco, telefone) =>
{
if (lojista != null)
{
if (email != null)
{
lojista.AdicionarEmail(email);
}
if (endereco != null)
{
lojista.AdicionarEndereco(endereco);
}
if (telefone != null)
{
lojista.AdicionarTelefone(telefone);
}
}
return lojista;
}, new { @pId = id, @pStatus = EntityStatus.Excluido }, splitOn: "Id");
return queryResult.FirstOrDefault();
}
catch (Exception ex) { throw ex; }
}
Как построить объект значения RG?