У меня проблема с одним из моих вызовов dapper, возвращающим курсор со всеми данными столбца как null
.
У нас есть несколько вызовов, которые выглядят идентично этому, которые возвращают списокпредоставленной модели. Я все еще знакомлюсь с C #, .Net и Dapper, поэтому может быть что-то простое, что мне не хватает.
Наша хранимая процедура SQL ожидает:
Procedure ListItemGrid(pUserId in number,
pListType in varchar2,
pSearchTerm in varchar2,
pId in varchar2,
pOut out sys_refcursor
)
The Dappercall:
public async Task<List<ListItem>> ListItemGrid(string id, string listType = null, string searchTerm = null)
{
using (var conn = this.GetConnection())
{
var p = new OracleDynamicParameters();
p.Add("pUserId", value: this.userResolverService.UserId, dbType: OracleDbType.Double, direction: ParameterDirection.Input);
p.Add("pListType", value: listType, dbType: OracleDbType.Varchar2, size: 4000, direction: ParameterDirection.Input);
p.Add("pSearchTerm", value: searchTerm, dbType: OracleDbType.Varchar2, size: 4000, direction: ParameterDirection.Input);
p.Add("pId", value: id, dbType: OracleDbType.Varchar2, size: 4000, direction: ParameterDirection.Input);
p.AddCursor("pOut");
var itemList = await conn.QueryAsync<ListItem>("SQL_PKG.ListItemGrid", param: p, commandType: CommandType.StoredProcedure);
return itemList.AsList();
}
}
Где SQL_PKG.ListItemGrid
возвращает курсор той же формы, что и модель ListItem
:
using System;
using Proj.Name.Infrastructure.DataAccess;
namespace Proj.Name.Models
{
public class ListItem
{
[Column("name")]
public string name { get; set; }
[Column("other_column")]
public string other { get; set; }
[Column("third_column")]
public string third { get; set; }
...
}
}
Ожидается: Список ListItem
со значениями из нашей базы данных.
[
{
key: "string value",
keyTwo: "other string value",
...
},
{ ... },
{ ... }
]
Факт: Список ListItem
с правильной длиной с ключами от ListItem
, но null
для каждого значения.
[
{
key: null,
keyTwo: null,
...
},
{ ... },
{ ... }
]
Почему я получаю null
для всех значений?