我在UsersController
上有一个GET入口点。但这是对一组空对象的响应。当我调试入口点时,列表(IEnumerable<UserViewModel>
)也不为空,UserViewModels
也不为空。
但这是它的响应:
[{},{},{},{},{},{},{},{},{},{},{},{}]
以及控制器代码:
[HttpGet]
public async Task<IEnumerable<UserViewModel>> Get()
{
var u = _stObjMap.Default.Obtain<UserTable>();
using (var ctx = new SqlStandardCallContext())
{
var a = await ctx[u].Connection.QueryAsync<UserViewModel>("SELECT UserId, UserName, PrimaryEMail, CreationDate from CK.vUser where UserId <> 0 and UserId <> 1");
return a;
}
}
我真的不认为问题出在控制器上。 我正在使用Dapper,我真的不知道发生了什么。而且我不得不写很多东西,因为我无法编辑这篇文章
答案 0 :(得分:0)
很可能UserViewModel
没有定义公共属性。
这就是为什么将对象序列化为JSON时不显示键值对的原因。
根据查询,确保模型中具有匹配的属性,以便Dapper查询映射所选的列
public class UserViewModel
public int UserId { get; set; }
public string UserName { get; set; }
public string PrimaryEMail { get; set; }
public DateTime CreationDate { get; set; }
}