私は奇妙な問題が発生していると私は何かが不足していると思う。返されたときにDTOに値が設定されていないようです。 LINQクエリで初期化されているプロパティのみが取得され、ParseJobResultsXmlで設定されているプロパティはDEBUG出力に表示されるようにセットアップされません。DTOでLINQエラー
DTOは、LINQクエリでこのような何か設定されている:これは私が2つのDEBUGラインサーバ上で
のために、サーバ上で見ているのデバッグ出力である
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レコードを更新:
a8d041-5dff-4849-9651-9fb2fe89816aステータス:サーバ... IDに0あなたは第二1はステータスコルンのためのエントリがない見ることができるように。これがなぜ起こっているのか?
を試してみてくださいそれはあなたがレコードを更新しているあなたはDO-しようとしているものをはっきりしていませんか?これはクエリに問題がありますか?詳細を含める必要があります。 –
私は自分の編集内容を追加しました。 – Sunit