【发布时间】:2019-11-01 19:06:45
【问题描述】:
我有一个看起来像这样的简单方法:
public partial class PEUploadBookHistory: DataAccessBase
{
public string Get()
{
List<PEUploadBookHistory> histories = _repository.GetList<PEUploadBookHistory>().ToList();
string jsonHistories = JsonConvert.SerializeObject(histories);
return jsonHistories;
}
// Other methods like Post and Put, etc
}
_repository.GetList 是一个 Dapper 存储库:
public IEnumerable<T> GetList<T>()
{
IEnumerable<T> entities;
using (var connection = OpenConnection(_connectionStringName))
{
entities = connection.GetList<T>();
}
return entities;
}
第一种方法返回的json字符串如下所示:
[
{
"_repository": {},
"UploadBookHistoryId": 5467,
... other properties ...
}
]
我不明白为什么要添加"_repository": {},。不应该是PEUploadBookHistory吗?那是从哪里来的?为什么?我该如何改变它?
这是其余的部分:
[Table("PE_UploadBookHistory")]
public partial class PEUploadBookHistory
{
[Key]
public virtual int UploadBookHistoryId { get; set; }
... other columns ...
}
这里是DataAccessBase
public class DataAccessBase
{
public Repository _repository = new Repository("SQLConnection");
}
【问题讨论】:
-
你能告诉我们
PEUploadBookHistory的定义吗? -
完成。谢谢你:)
-
没有什么特别突出的,但它是一个部分类。在某个地方是否还有定义的另一部分?您的代码是否在任何地方包含“_repository”?它的行为就像有一个名为
_repository的公共属性或字段。这是最有可能的解释……如果不是这样,那我真的不确定。 -
啊,您的
connection.GetList<T>();调用必须返回一个包含该属性的对象。我原以为您收到的是List<T>,但事实并非如此。 -
谢谢艾米。我编辑了 OP 以显示这一点。也许再从头开始。