Один и тот же запрос EF Core с одним и тем же набором данных и разными результатами при каждом запуске.C#

Место общения программистов C#
Ответить
Anonymous
 Один и тот же запрос EF Core с одним и тем же набором данных и разными результатами при каждом запуске.

Сообщение Anonymous »


I have very weird issue below is a service which called by controller, it's returning different result without any change on passed parameter or on the data set

so for example in first run it shows me the found result as 15 and not found is 25, and without changing anything in the next run shows me total different result, and every time I ran the code it shows different result without changes on the data

Here is the code

public async Task GetTotals(DateTime? startDate, DateTime? endDate, string? parentGroup, string? childGroup, string? location) { List result = new List(); try { SqlParameter[] param = StoredProcedureHelpers.GetAsSQLParameters(startDate, endDate, parentGroup, childGroup, location); string sql = "EXEC MyDb.spGetResult @StartDate, @EndDate, @parentGroup, @childGroup, @Location"; var queryResult = await _context.VwResults.FromSqlRaw(sql, param).AsNoTracking().ToListAsync(); queryResult = queryResult.AsEnumerable() .Where(x => !string.IsNullOrEmpty(x.Category) && x.Category.Trim().ToUpper().Equals("Category1") && !string.IsNullOrEmpty(x.FinalResultValue) && (x.FinalResultValue.Trim().Equals("Found") || x.FinalResultValue.Trim().Equals("Not Found"))).ToList(); var distinctedList = queryResult.DistinctBy(x => x.TextId); var totalResutls = distinctedList.Count(); var found = distinctedList.Count(x => x.FinalResultValue?.Trim().ToUpper() == "Found".ToUpper()); var notFound = distinctedList.Count(x => x.FinalResultValue?.Trim().ToUpper() == "Not Found".Trim().ToUpper()); result.Add(new KeyValuePair(TOTAL_TEST_RESULTS, totalResutls)); result.Add(new KeyValuePair("Found", found)); result.Add(new KeyValuePair("Not_Found", notFound)); } catch (Exception ex) { throw new Exception(ex.Message); } return result; } Update:

Here is my Stored Procedure query:
ALTER PROCEDURE [MyDb].[spGetResult] @StartDate DATE, @EndDate DATE, @parentGroup VARCHAR(100) = NULL, @childGroup VARCHAR(100) = NULL, @Location VARCHAR(100) = NULL AS SET NOCOUNT ON; SELECT distinct s.SCode AS SCode, s.text_id AS Text_ID, sp.Location, s.date AS Date, [dbo].[CASES].[DESCRIPTION] AS childGroup, t.group_name AS Lab, [dbo].[CASES].[DESCRIPTION] AS Result1, a.c_analyte_group AS Category, a.analysis_type AS parentGroup, [dbo].[CASES].[DESCRIPTION] AS Final_Result, r.FORMATTED_ENTRY, r.C_FINAL_ID_ENTRY AS FinalResult_Value FROM [dbo].[SAMPLE] AS s INNER JOIN [dbo].[TEST] AS t ON t.SCode = s.SCode INNER JOIN [dbo].[RESULT] AS r ON r.test_number = t.test_number INNER JOIN [dbo].[ANALYSIS] AS a ON a.name = r.analysis INNER JOIN [dbo].[CASES] on [dbo].[CASES].[NAME] = r.alias_name WHERE (s.date >= @StartDate AND s.date

Источник: https://stackoverflow.com/questions/780 ... -every-run
Ответить

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

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

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

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

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