Вот что я хочу сделать: Получите список контрольных объектов в моем контроллере, который я могу отправить на просмотр и отобразить. Он работает, но значения смешаны. Если значение в базе данных равно null или 0, запрос заполняет его другим ненулевым значением в записи. Вот пример.IQueryable заполняет нулевые значения другими значениями
Database Content
Id:13
TotalRequest : 10
TotalProcessed :0
CreatedDateTime:2017-01-13 13:30:46.090
CreatedBy:Test
CompletionDateTime : NULL
Iqueryable at position 13 content
Id:13
TotalRequest : 10
TotalProcessed :10
CreatedDateTime:2017-01-13 13:30:46.090
CreatedBy:Test
CompletionDateTime : NULL
Вы можете видеть, что TotalProcessed неверен. Кроме того, если у меня есть CompletionDateTime, которое не равно нулю в одном из объектов, список не заботится и всегда выдает нулевой
Код:
IQueryable<Batch> IBatchList = context.batch.OrderByDescending(b => b.CreatedDateTime);
var batchList = IBatchList.ToList();
Batch Class (код первой БД, так что это определение БД, а)
public class Batch
{
[Key]
public Int64 Id { get; set; }
public int TotalRequested { get; set; }
public int TotalProcessed { get; set; }
public DateTime CreatedDateTime { get; set; }
public string CreatedBy { get; set; }
public DateTime? CompletedDateTime { get; set; }
}
Id TotalRequested TotalProcessed CreatedDateTime CreatedBy CompletedDateTime
13 10 0 2017-01-13 13:30:46.090 Test NULL
Вот запрос от IQueryable:
{SELECT
[Extent1].[Id] AS [Id],
[Extent1].[TotalRequested] AS [TotalRequested],
[Extent1].[TotalProcessed] AS [TotalProcessed],
[Extent1].[CreatedDateTime] AS [CreatedDateTime],
[Extent1].[CreatedBy] AS [CreatedBy],
[Extent1].[CompletedDateTime] AS [CompletedDateTime]
FROM [dbo].[Batch] AS [Extent1]
ORDER BY [Extent1].[CreatedDateTime] DESC}
Просьба указать класс Batch и ваш класс контекста. –
IQueryable - это интерфейс, он ничего не заполняет. LINQ - это просто язык запросов, который также не изменяет значения. Наконец, LINQ to EF генерирует SQL-запросы, он сам по себе не модифицирует данные. Невозможно помочь без a) определений классов b) схемы таблицы и c) затронутых строк. Возможно, вы просматриваете неправильную строку, или свойство класса может заменить нули, или основной запрос может отличаться от того, что вы считали. –
Проверьте сгенерированный SQL-запрос, например, с помощью SQL Server Profiler. Что происходит, когда вы выполняете запрос к базе данных? –