C# Azure表存储的设计查询
我有两个C#MVC型号C# Azure表存储的设计查询,c#,asp.net-mvc,azure,azure-table-storage,C#,Asp.net Mvc,Azure,Azure Table Storage,我有两个C#MVC型号 信号模型 设备信号模型 SignalModel==>包含信号的属性 DeviceSignalModel==>包含与设备相关的所有信号属性 因此,除了DeviceSignalModel需要额外的DeviceID属性外,这两个属性都应该是相同的 模型SignalModel将包含列==>id、名称、单位、范围。。。 表示Azure存储表信号 我使用下面的命令从表信号 TableOperation retOp = TableOperation.Retrieve<Signal
SignalModel
==>包含信号的属性
DeviceSignalModel
==>包含与设备相关的所有信号属性
因此,除了DeviceSignalModel
需要额外的DeviceID属性外,这两个属性都应该是相同的
模型SignalModel
将包含列==>id、名称、单位、范围。。。
表示Azure存储表信号
我使用下面的命令从表信号
TableOperation retOp = TableOperation.Retrieve<SignalModel>(..,..,..);
TableResult tr = table.Execute(retOp);
为了从devicesignal获取数据,我使用下面的
TableOperation retOp = TableOperation.Retrieve<DeviceSignalModel>(..,..,..);
TableResult tr = table.Execute(retOp);
TableOperation retOp=TableOperation.Retrieve(..,..);
TableResult tr=table.Execute(retOp);
通过上面的查询,我不会从devicesignal表(上面的语句(A))中获取SignalModel中表示的列的值。属性信号为空
我的查询
1.上述片段中的陈述(A)是否不可能
SignalModel中的所有属性是否都应该显式放置在DeviceSignalModel中(而不是将对象信号作为属性)
如果是这样,当信号表将来发生更改(添加属性)时,避免在信号和设备信号中添加相同属性的最佳选项是什么
您不能将自定义的SignalModel
设置为属性类型。如果要在DeviceSignalModel
实体中维护SignalModel
类型对象信息,可以尝试将SignalModel
类型对象序列化为JSON字符串,并将其保存为DeviceSignalModel
实体的属性值。或者正如davethecoder所说,如果可能,您可以使用来存储数据
此外,如您所述,要在Azure表服务中实现信号和设备信号之间的关系,可以将SignalModel实体的特定属性放置在DeviceSignalModel实体中。此外,您可以参考了解建模关系和表设计模式Azure表服务中的。Azure表存储不是关系数据库,相应的API不像实体框架,因此您应该手动执行您的意图:分别获取DeviceSignalModel
,然后获取相应的SignalModel
实例或将它们存储在同一个表中。SignalModel不是受支持的类型对于表存储,您需要documentDb或将对象转换为字符串。表存储在它可以存储的类型上非常有限
TableOperation retOp = TableOperation.Retrieve<DeviceSignalModel>(..,..,..);
TableResult tr = table.Execute(retOp);