非派生POCO和Azure存储

Moo*_*Moo 6 azure-table-storage

是否可以为Azure表存储提供非派生POCO?

换句话说,POCO不是源于TableEntity或实施的ITableEntity

似乎有一个退步,必须有一个依赖于接口或基类的模型,因为这会导致链中的引用泄漏 - 我无法在另一层中设置模型,而无需知道Azure存储接口或基类!

enz*_*nzi 9

看看DynamicTableEntity(ctrl + f).它可用于查询和插入实体.

使用此类型,您不会在域模型中引入任何依赖项,但是您必须自己将POCO转换为DynamicTableEntity - 如果您愿意使用自定义界面标记您的POCO,则可以轻松自动执行此过程并编写一个mapper(基本上你只需要一个属性字典+需要知道哪些是Partition/RowKey).

您不能只在Azure表存储中保存任何实体的原因是它需要知道哪个属性充当分区键并且作为行键.必须DynamicTableEntity在"较低级别"上工作的好处是,您可以创建仅返回属性子集的查询,从而减少资源消耗.在您的情况下,这可能会或可能不会有益.