我們使用MongoDb作爲緩存服務來緩存我們的Visual Studio解決方案中廣泛使用的TDO類。
MongoDB需要存儲對象上的_id字段,因此每個DTO類都必須具有_id屬性。
該要求公開了DTO上的具體實現。
我們如何克服它?在MongoDB中緩存DTO類
回答
爲了擴大@Rahul提供的答案,MongoDB C#驅動程序提供註釋[BsonElement("<name>")]
以幫助。
public class Entity
{
[BsonElement("_id")]
public string Id { get; set; }
}
public class DTO : Entity
{
[BsonElement("bd")]
public DateTime BusinessDate { get; set; }
// etc
}
這是迄今爲止最好的解決方案。 但是我們仍然需要繼續參考MongoDB彙編與DTO庫彙編,這是OO術語是實現泄漏。 –
是的,這是真的,MongoDB
要求事件實體(文檔)必須有一個_id
字段。因爲在你的情況下每一個實體(DTO)必須有ID字段中,您可以創建一個基本的實體,並把所有的DTO(具體的實體),從中獲得像
public class BaseDTO
{
public string _id {get; set;}
}
public class DTO1 : BaseDTO
{
// your specific implementation
}
可以以及考慮創建您的收藏相同作爲POCO結構。
您可以使用'[BsonElement(「_ id」)]'註釋該屬性,以允許更友好的命名爲'public string Id {get; set;}' – tawman
Grate solution @tawman。請在這裏寫下答案。 –
- 1. 如何在MongoDB中實現緩存?
- 2. 在PHP中緩存MongoDB對象
- 3. MongoDB緩存計數器
- 4. 類「內存緩存」中
- 5. 服務契約中的基類DTO或派生類DTO
- 6. PHP緩存類
- 7. 如何將mongodb中的數據保存到node.js緩存中?
- 8. SystemSettings Rails中的類緩存
- 9. 在ColdFusion中緩存的Java類
- 10. 如何在android中創建緩存類?
- 11. 緩存類型和應用緩存
- 12. Symfony2緩存包(類似於Zend緩存)
- 13. 清除緩存以在MongoDB中進行性能測試?
- 14. 在Node.js/Express.js中從數據庫(MongoDB)緩存數組
- 15. 添加緩存到node.js MongoDB API?
- 16. 系統間緩存和MongoDB比較
- 17. 致命錯誤:類「內存緩存」在
- 18. Yii2 redis緩存在文件緩存中
- 19. 在ASP.NET緩存中緩存EF實體
- 20. 在jQuery中緩存或不緩存$(this)
- 21. 避免在緩存中緩存
- 22. 在緩存中存儲MemoryStream
- 23. 在Asp.net中緩存
- 24. 在Flex中緩存
- 25. 在Laravel5.2中緩存
- 26. 在Android中緩存
- 27. 在LLBLGENPro中緩存
- 28. 在WebSockets中緩存
- 29. 如何在單個DTO類中創建多個類?
- 30. /dev/shm中的內存可以緩存在CPU緩存中嗎?
從DTO創建業務對象。應用程序的其餘部分應使用業務對象。只有數據層應該使用DTO。 – itsme86