Je vois un problème étrange et je pense qu'il me manque quelque chose. Le DTO ne semble pas être rempli à son retour. Seules les propriétés qui sont en cours dans la requête LINQ sont définies, celles qui sont définies dans ParseJobResultsXml ne sont pas configurées comme dans la sortie DEBUG.Erreur LINQ avec DTO
Le DTO est en cours de configuration dans une requête LINQ, quelque chose comme ceci:
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;
Ceci est la sortie de débogage que je vois sur le serveur pour les deux lignes de DEBUG
Sur le serveur ... Id: 51a8d041-5dff-4849-9651-9fb2fe89816a Statut: Fini
Catalogue - Mise à jour 0 fiche (s) avec succès: Modèle - Mise à jour 0 fiche (s) avec succès:
Sur le serveur ... Id: 51a8d041-5dff-4849-9651-9fb2fe89816a Statut:
Comme vous pouvez le voir le 2e n'a pas d'entrée pour le statut coln. Des idées pour lesquelles cela se passe?
Il est pas clair ce que vous essayez de faire- vous mettez à jour un dossier? Est-ce un problème d'interrogation? Vous devez inclure plus de détails. –
J'ai ajouté mes modifications espérons que cela a du sens. – Sunit