Я вижу странную проблему и думаю, что что-то упустил.DTO, кажется, не заполняется, когда возвращается.Устанавливаются только те свойства, которые инициализируются в запросе LINQ, те, которые задаются в ParseJobResultsXml, не получают настройки, как видно из вывода DEBUG.
DTO настраивается в запросе LINQ, что-тонапример:
public class JobResultDTO
{
[Key]
public string Id { get; set; }
public string Created { get; set; }
public string Finished { get; set; }
public string Status { get; set; }
public string PlantLink { get; set; }
public IEnumerable<string> Messages { get; set; }
public string JobType { get; set; }
}
private void ParseJobResultXml(string jobResultXml, JobResultDTO jobDto)
{
try
{
var xmlElement = XElement.Parse(jobResultXml);
if (xmlElement != null)
{
jobDto.Finished = xmlElement.Element("Date").Value;
jobDto.Status = xmlElement.Element("Status").Value;
jobDto.PlantLink = xmlElement.Element("PlantLink").Value;
jobDto.Messages = xmlElement.Element("Messages").Elements("Message").Select(m => m.Value);
}
}
catch { }
}
var jobsAndResults = _context.Jobs.Where(j => j.JobType == jobOpenPlant || j.JobType == jobNormSite)
.AsEnumerable()
.Where(j => JobResultXmlHelper.JobBelongsToUser(j.JobResult, userLogin))
.OrderByDescending(j => j.JobCreated)
.Select(j => new
{
Result = j.JobResult,
Dto = new JobResultDTO
{
Id = j.Id.ToString(),
JobType = j.JobType,
Created = (j.JobCreated ?? DateTime.Now).ToString()
}
});
foreach (var j in jobsAndResults)
{
ParseJobResultXml(j.Result, j.Dto);
DumpDTO(j.Dto); //I see it set up correctly here
}
jobs.AddRange(jobsAndResults.Select(j => j.Dto));
DumpDTO(jobs.ElementAt(0)); //Now only the Key property is set
return jobs;
Это вывод отладки, который я вижу на сервере для двух строк отладки
На сервере ... Идентификатор: 51a8d041-5dff-4849-9651-9fb2fe89816aСтатус: Закончено
Каталог - Успешно обновлено 0 записей: Модель - Успешно обновлено 0 записей:
На сервере ... Идентификатор: 51a8d041-5dff-4849-9651-9fb2fe89816a Статус:
Как вы видите, у второго нет записи для Status coln.Есть идеи, почему это происходит?