我试图避免在我的数据层和使用该层的客户端代码之间引入任何依赖关系,但是在尝试使用 Mongo 执行此操作时遇到了一些问题(使用 MongoRepository)
MongoRepository 显示了创建反映数据结构的类型并在需要时继承实体的示例。例如。
[CollectionName("track")]
public class Track : Entity
{
public string name { get; set; }
public string hash { get; set; }
public Artist artist { get; set; }
public List<Publish> published {get; set;}
public List<Occurence> occurence {get; set;}
}
为了在我的客户端代码中使用这些,我想用接口替换特定于 Mongo 的类型,例如:
[CollectionName("track")]
public class Track : Entity, ITrackEntity
{
public string name { get; set; }
public string hash { get; set; }
public IArtistEntity artist { get; set; }
public List<IPublishEntity> published {get; set;}
public List<IOccurenceEntity> occurence {get; set;}
}
但是,Mongo 驱动程序不知道如何处理这些接口,我可以理解地得到以下错误:
反序列化类 sf.data.mongodb.entities.Track 的艺术家属性时出错:找不到类型 sf.data.IArtistEntity 的序列化程序。---> MongoDB.Bson.BsonSerializationException:找不到类型 sf.data.IArtistEntity 的序列化程序。
有人对我应该如何处理这个问题有任何建议吗?