我们使用MongoDb作为缓存服务来缓存我们的Visual Studio解决方案中广泛使用的TDO类。
MongoDB需要存储对象的_id字段,因此每个DTO类都必须具有_id属性
该要求揭示了DTO的具体实施
我们怎样才能克服它?
答案 0 :(得分:1)
为了扩展@Rahul提供的答案,MongoDB C#驱动程序提供了注释[BsonElement("<name>")]
以帮助serialize documents with the CSharp driver。
public class Entity
{
[BsonElement("_id")]
public string Id { get; set; }
}
public class DTO : Entity
{
[BsonElement("bd")]
public DateTime BusinessDate { get; set; }
// etc
}
答案 1 :(得分:0)
是的,MongoDB
要求事件实体(文档)必须具有_id
字段。因为在您的情况下,每个实体(DTO)都必须具有Id字段,您可以创建一个基本实体并让所有DTO(具体实体)从中派生出来,如
public class BaseDTO
{
public string _id {get; set;}
}
public class DTO1 : BaseDTO
{
// your specific implementation
}
您也可以考虑创建与POCO结构相同的集合。