Дочерние/навигационные свойства не заполняют значения в DapperC#

Место общения программистов C#
Ответить
Anonymous
 Дочерние/навигационные свойства не заполняют значения в Dapper

Сообщение Anonymous »

У меня есть GetClientDocumentRequestResponse ответ DTO. В этом у меня есть getDocumentRequestClientResponse DTO, какое свойство имя является клиентом и getDocumentRequestClientResponse DTO, какое имя свойства запрошен .
Теперь, когда я запускаю запрос в Dapper, значения, которые не являются популярными в клиенте и запрашиваемые. GetClientDocumentRequestResponse . Другие свойства этого класса действительно получают значения.
Вот getClientDocumentRequestResponse класс:

Код: Выделить всё

public sealed class GetClientDocumentRequestResponse
{
public int RequestId { get; set; }

public int ClientId { get; set; }

public int RequestedById { get; set; }

public string DocumentName { get; set; } = string.Empty;

public GetDocumentRequestClientResponse Client { get; set; } = new GetDocumentRequestClientResponse();

public GetDocumentRequestClientResponse RequestedBy { get; set; } = new GetDocumentRequestClientResponse();
}

public class GetDocumentRequestClientResponse
{
public int ClientId { get; set; }
public string FirstName { get; set; } = string.Empty;
public string LastName { get; set; } = string.Empty;
public string CompanyName { get; set; } = string.Empty;
}
< /code>
Вот как я запускаю свои Dapper запросы: < /p>
const string sql = $@"SELECT TOP 1
cdr.RequestId,
cdr.ClientId,
cdr.RequestedById,
cdr.DocumentName,

client.ClientId AS Client_ClientId,
client.CompanyName AS Client_CompanyName,
client.FirstName AS Client_FirstName,
client.LastName AS Client_LastName,

requestedBy.ClientId AS RequestedBy_ClientId,
requestedBy.CompanyName AS RequestedBy_CompanyName,
requestedBy.FirstName AS RequestedBy_FirstName,
requestedBy.LastName AS RequestedBy_LastName,

FROM ClientDocumentRequest cdr
LEFT JOIN ClientInfo client ON cdr.ClientId = client.ClientId
LEFT JOIN ClientInfo requestedBy ON cdr.RequestedById = requestedBy.ClientId
WHERE cdr.RequestId = @RequestId
AND cdr.TenantId = @TenantId
;";

var response = (await connection.QueryAsync(
sql,
(cdr, client, requestedBy) =>
{
cdr.Client = client;
cdr.RequestedBy = requestedBy;
return cdr;
},
parameters,
splitOn: "Client_ClientId,RequestedBy_ClientId"
)).FirstOrDefault();
При запуска этого запроса в базе данных я получаю значения в клиенте и запрошенные объекты также.

Подробнее здесь: https://stackoverflow.com/questions/797 ... -in-dapper
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»