我有一个简单的方法,如下所示:
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 coluomns ...
}
这是DataAccessBase
public class DataAccessBase
{
public Repository _repository = new Repository("SQLConnection");
}
答案 0 :(得分:2)
用JsonIgnore
装饰此属性:
[JsonIgnore]
public Repository _repository = new Repository("SQLConnection");
或者,您可以将其设为不公开。
或者,对数据库和JSON使用不同的模型。
如果这些解决方案都不起作用,则可以使用自定义Json合同类,这将花费更多的工作。