[英]“source is not IEnumerable<>” error when using SqlQuery(Type,string,object[]).AsQueryable()
[英]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.