我有一个使用mongodb的.Net核心项目。我有一个派生类和一个基类。在我的控制器中,我试图将派生类的列表返回给Ok(),但是当我查看响应时,我正在获取要返回的基类的列表。
[Route("albums")]
[HttpGet]
public IactionResult GetallAlbums()
{
List<AlbumAdd> albums = (List<AlbumAdd>) _repo.Getall<AlbumAdd>("albums");
return Ok(albums);
}
当我断点时,专辑列表是派生类,因此仅当发送Ok响应时,它们才作为基类发送。不知道这是否与mongo映射有关,但这是我的DTO。
[DataContract]
public class AlbumAdd : AlbumBase
{
[BsonElement("rating")]
[DataMember]
public double Rating;
[BsonElement("addDate")]
[DataMember]
public DateTime AddDate;
[BsonElement("format")]
[DataMember]
public List<AlbumFormat> Format;
}
[BsonIgnoreExtraElements]
[BsonDiscriminator(RootClass = true)]
[BsonKnownTypes(typeof(AlbumAdd))]
[DataContract]
public class AlbumBase
{
[BsonId]
[DataMember]
public MongoDB.Bson.ObjectId _id { get; set; }
[DataMember]
public string Id { get; set; }
[BsonElement("title")]
[DataMember]
public string Title { get; set; }
[DataMember]
[BsonElement("artists")]
public string[] Artists { get; set; }
[DataMember]
[BsonElement("genres")]
public string[] Genres { get; set; }
[DataMember]
[BsonElement("type")]
public AlbumType Type { get; set; }
[DataMember]
[BsonElement("year")]
public int ReleaseYear;
}
帮助表示感谢。