簡體   English   中英

映射到TemplateContext.Database.SqlQuery函數中的對象時記錄重復

[英]Records getting duplicated when mapped to object in TemplateContext.Database.SqlQuery function

當我使用TemplateContext調用這樣的存儲過程時,我遇到了奇怪的問題

string query = "exec SearchRequest @recct = @TotalCount OUTPUT" + parametersString.ToString();
var requestDtos = ctx.Database.SqlQuery<RequestDto>(query, totalCount).ToList();

這得到有時30,有時60物體requestDtos數據庫的同時實際上返回基於行的正確數量PageSize的參數,我傳遞給存儲過程,但同時獲得映射為對象奇怪的記錄得到復制。

因此,如果頁面大小為10,則不會獲得10個對象,而是要復制30個或60個對象。

對這種奇怪的行為有任何想法嗎?

您沒有正確傳遞參數。 我建議您使用以下代碼:

var outParam = new SqlParameter();
outParam.ParameterName = "TotalCount";
outParam.SqlDbType = SqlDbType.Int;
outParam.ParameterDirection = ParameterDirection.Output;

var requestDtos = dbContext.Database.SqlQuery<MyType>("SearchRequest @recct, @TotalCount OUT", 
               new SqlParameter("recct", parametersString.ToString()), 
               outParam);
var result = requestDtos.ToList();
var totalCount = (int)outParam.Value;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM